Skip to content

Commit 814a068

Browse files
committed
Added support for blockdatalong
1 parent bdd687b commit 814a068

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

javaobj.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,7 @@ def __init__(self, stream):
450450
self.TC_ARRAY: self.do_array,
451451
self.TC_CLASS: self.do_class,
452452
self.TC_BLOCKDATA: self.do_blockdata,
453+
self.TC_BLOCKDATALONG: self.do_blockdata_long,
453454
self.TC_REFERENCE: self.do_reference,
454455
self.TC_ENUM: self.do_enum,
455456
# note that we are reusing do_null:
@@ -681,6 +682,22 @@ def do_blockdata(self, parent=None, ident=0):
681682
# Ensure we have an str
682683
return read_to_str(ba)
683684

685+
def do_blockdata_long(self, parent=None, ident=0):
686+
"""
687+
Handles TC_BLOCKDATALONG opcode
688+
689+
:param parent:
690+
:param ident: Log indentation level
691+
:return: A string containing the block data
692+
"""
693+
# TC_BLOCKDATALONG (int)<size> (byte)[size]
694+
log_debug("[blockdatalong]", ident)
695+
(length,) = self._readStruct(">I")
696+
ba = self.object_stream.read(length)
697+
698+
# Ensure we have an str
699+
return read_to_str(ba)
700+
684701
def do_class(self, parent=None, ident=0):
685702
"""
686703
Handles TC_CLASS opcode

0 commit comments

Comments
 (0)