class Metasm::JavaClass::ConstantPool
Attributes
constant_pool[RW]
Public Instance Methods
[](idx)
click to toggle source
# File metasm/exe_format/javaclass.rb, line 67 def [](idx) @constant_pool[idx] end
[]=(idx, val)
click to toggle source
# File metasm/exe_format/javaclass.rb, line 71 def []=(idx, val) raise 'cannot be used to add a cp entry' if @constant_pool[idx].nil? @constant_pool[idx] = val end
decode(c)
click to toggle source
Calls superclass method
Metasm::SerialStruct#decode
# File metasm/exe_format/javaclass.rb, line 36 def decode(c) super(c) @constant_pool = [nil] i = 1 while i < @constant_pool_count entry = ConstantPoolInfo.decode(c) entry.idx = i @constant_pool << entry i += 1 if entry.tag =~ /Long|Double/ # we must insert a phantom cell # for long and double constants @constant_pool << nil i += 1 end end end
encode(c)
click to toggle source
Calls superclass method
Metasm::SerialStruct#encode
# File metasm/exe_format/javaclass.rb, line 57 def encode(c) cp = super(c) @constant_pool.each { |entry| next if entry.nil? cp << entry.encode(c) } cp end