Class: JavaClass::FullFrame

Inherits:
StackMapFrame show all
Defined in:
lib/javaclass/attribute.rb

Overview

full_frame

Instance Attribute Summary collapse

Attributes inherited from StackMapFrame

#frame_type

Instance Method Summary collapse

Methods included from Base

#==, #===, #dump, #eql?, #hash, #to_byte

Constructor Details

#initialize(frame_type, offset_delta, verification_type_info_local = [], verification_type_info_stack = []) ⇒ FullFrame

コンストラクタ

*frame_type::種別

*offset_delta

オフセットデルタ

*verification_type_info

型情報



1262
1263
1264
1265
1266
1267
1268
# File 'lib/javaclass/attribute.rb', line 1262

def initialize(frame_type, offset_delta, 
  verification_type_info_local=[], verification_type_info_stack=[])
  super(frame_type)
  @offset_delta = offset_delta
  @verification_type_info_local = verification_type_info_local
  @verification_type_info_stack = verification_type_info_stack
end

Instance Attribute Details

#offset_deltaObject

オフセットデルタ



1281
1282
1283
# File 'lib/javaclass/attribute.rb', line 1281

def offset_delta
  @offset_delta
end

#verification_type_info_localObject

ローカルの型情報



1283
1284
1285
# File 'lib/javaclass/attribute.rb', line 1283

def verification_type_info_local
  @verification_type_info_local
end

#verification_type_info_stackObject

スタックの型情報



1285
1286
1287
# File 'lib/javaclass/attribute.rb', line 1285

def verification_type_info_stack
  @verification_type_info_stack
end

Instance Method Details

#to_bytesObject



1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
# File 'lib/javaclass/attribute.rb', line 1269

def to_bytes
  bytes = super
  bytes += to_byte( offset_delta, 2 )
  [verification_type_info_local, verification_type_info_stack].each {|vi|
    bytes += to_byte( vi.length, 2 )
    vi.each {|v|
      bytes += v.to_bytes 
    }
  }
  bytes
end