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