@@ -82,6 +82,7 @@ def __init__(self):
8282 self .TC_CLASSDESC : self .do_classdesc ,
8383 self .TC_OBJECT : self .do_object ,
8484 self .TC_STRING : self .do_string ,
85+ self .TC_ARRAY : self .do_array ,
8586 self .TC_CLASS : self .do_class ,
8687 self .TC_BLOCKDATA : self .do_blockdata ,
8788 self .TC_REFERENCE : self .do_reference
@@ -288,6 +289,18 @@ def do_string(self, parent=None, ident=0):
288289 ba = self ._readString ()
289290 return str (ba )
290291
292+ def do_array (self , parent = None , ident = 0 ):
293+ # TC_ARRAY classDesc newHandle (int)<size> values[size]
294+ self .print_ident ("[array]" , ident )
295+ classdesc = self .read_and_exec_opcode (ident = ident + 1 , expect = [self .TC_CLASSDESC , self .TC_PROXYCLASSDESC , self .TC_NULL ])
296+ (size , ) = self ._readStruct (">i" )
297+ self .print_ident ("size: " + str (size ), ident )
298+ for i in range (size ):
299+ res = self .read_and_exec_opcode (ident = ident + 1 )
300+ print res
301+
302+ return None
303+
291304 def do_reference (self , parent = None , ident = 0 ):
292305 # TODO: Reference isn't supported yed
293306 (handle , reference ) = self ._readStruct (">HH" )
0 commit comments