Implement non-embedded ivars

This commit is contained in:
Takashi Kokubun 2023-02-07 23:25:33 -08:00
parent 5a1cee1d96
commit d11f960fb0
2 changed files with 14 additions and 9 deletions

View file

@ -135,12 +135,13 @@ module RubyVM::MJIT
define_singleton_method(:sizeof) { sizeof }
# Part of Struct's offsetof implementation
define_singleton_method(:offsetof) do |*fields|
if fields.size == 1
0
else
raise NotImplementedError
define_singleton_method(:offsetof) do |field, *fields|
member = members.fetch(field)
offset = 0
unless fields.empty?
offset += member.offsetof(*fields)
end
offset
end
define_method(:initialize) do |addr|