class RubyVM::RJIT::CPointer::Array
基本上是Immediate
,但不带 * 以跳过结构体的自动解引用。
属性
type[R]
公共类方法
new(addr, type) 点击以切换源代码
@param addr [Integer] @param type [Class] RubyVM::RJIT::CType::*
# File ruby_vm/rjit/c_pointer.rb, line 247 def initialize(addr, type) @addr = addr @type = type end
私有类方法
define(block) 点击以切换源代码
调用父类方法
# File ruby_vm/rjit/c_pointer.rb, line 266 def self.define(block) Class.new(self) do define_method(:initialize) do |addr| super(addr, block.call) end end end
公共实例方法
[](index) 点击以切换源代码
Array
访问
# File ruby_vm/rjit/c_pointer.rb, line 253 def [](index) @type.new(@addr)[index] end
[]=(index, value) 点击以切换源代码
Array
设置 @param index [Integer] @param value [Integer, RubyVM::RJIT::CPointer::Struct
] 地址本身或返回地址的 to_i 的对象
# File ruby_vm/rjit/c_pointer.rb, line 260 def []=(index, value) @type.new(@addr)[index] = value end