diff options
Diffstat (limited to 'lib/ruby_vm/mjit')
-rw-r--r-- | lib/ruby_vm/mjit/c_pointer.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/ruby_vm/mjit/c_pointer.rb b/lib/ruby_vm/mjit/c_pointer.rb index a92c2140ae..de45c171c3 100644 --- a/lib/ruby_vm/mjit/c_pointer.rb +++ b/lib/ruby_vm/mjit/c_pointer.rb @@ -54,6 +54,12 @@ module RubyVM::MJIT # :nodoc: all # Return the size of this type define_singleton_method(:sizeof) { sizeof } + # Get the offset of a member named +name+ + define_singleton_method(:offsetof) { |name| + _, offset = members.fetch(name) + offset / 8 + } + define_method(:initialize) do |addr = nil| if addr.nil? # TODO: get rid of this feature later addr = Fiddle.malloc(sizeof) |