Class: Furnace::AVM2::ABC::ConstPoolInfo

Inherits:
Record show all
Defined in:
lib/furnace-avm2/abc/metadata/const_pool_info.rb

Instance Attribute Summary

Attributes inherited from Binary::Record

#root

Class Method Summary collapse

Methods inherited from Record

abc_array_of, flag, pool_array, pool_array_of, pool_ref, subset, xlat_direct, xlat_field, xlat_inverse

Methods inherited from Binary::Record

#byte_length, codegen, codegen_each, inherited, #inspect, method_missing, register, #to_hash, trace, trace_scope, trace_value

Class Method Details

.cpool_array_of(name, type, options = {}) ⇒ Object



3
4
5
6
7
8
# File 'lib/furnace-avm2/abc/metadata/const_pool_info.rb', line 3

def self.cpool_array_of(name, type, options={})
  field_size, field_array = :"#{name}_count", :"#{name}s"

  vuint30 field_size, :value => lambda { send(field_array).count == 0 ? 0 : send(field_array).count + 1 }
  array   field_array, :type => type, :initial_length => lambda { send(field_size) - 1 }, :options => options
end