class RubyVM::RJIT::CPointer::Array - ruby_vm: Ruby Standard Library Documentation

# class RubyVM::RJIT::CPointer::Array

Basically `Immediate` but without * to skip auto-dereference of structs.

### Attributes

type[R]

### Public Class Methods

new(addr, type) click to toggle source

@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

### Private Class Methods

define(block) click to toggle source
Calls superclass method

    # 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

### Public Instance Methods

[](index) click to toggle source

`Array` access

    # File ruby_vm/rjit/c_pointer.rb, line 253
    def [](index)
      @type.new(@addr)[index]
    end

[]=(index, value) click to toggle source

`Array` set @param index [Integer] @param value [Integer, `RubyVM::RJIT::CPointer::Struct`] an address itself or an object that return an address with to_i

    # File ruby_vm/rjit/c_pointer.rb, line 260
    def []=(index, value)
      @type.new(@addr)[index] = value
    end