[ttProgram] don't write empty <assembly> or <bytecode> elements

That means that, when reading from XML, we fallback to empty lists in case 'assembly' or 'bytecode' attrs are not there.
This commit is contained in:
Cosimo Lupo 2017-01-24 14:03:51 +00:00
parent 499bc960f9
commit f9071139b1
No known key found for this signature in database
GPG Key ID: B61AAAD0B53A6419

View File

@ -248,6 +248,8 @@ class Program(object):
writer.endtag("bytecode") writer.endtag("bytecode")
writer.newline() writer.newline()
else: else:
if not assembly:
return
writer.begintag("assembly") writer.begintag("assembly")
writer.newline() writer.newline()
i = 0 i = 0
@ -282,9 +284,12 @@ class Program(object):
writer.endtag("assembly") writer.endtag("assembly")
writer.newline() writer.newline()
else: else:
bytecode = self.getBytecode()
if not bytecode:
return
writer.begintag("bytecode") writer.begintag("bytecode")
writer.newline() writer.newline()
writer.dumphex(self.getBytecode()) writer.dumphex(bytecode)
writer.endtag("bytecode") writer.endtag("bytecode")
writer.newline() writer.newline()
@ -298,7 +303,7 @@ class Program(object):
self.fromBytecode(readHex(content)) self.fromBytecode(readHex(content))
def _assemble(self): def _assemble(self):
assembly = self.assembly assembly = getattr(self, 'assembly', [])
if isinstance(assembly, type([])): if isinstance(assembly, type([])):
assembly = ' '.join(assembly) assembly = ' '.join(assembly)
bytecode = [] bytecode = []
@ -423,7 +428,7 @@ class Program(object):
def _disassemble(self, preserve=False): def _disassemble(self, preserve=False):
assembly = [] assembly = []
i = 0 i = 0
bytecode = self.bytecode bytecode = getattr(self, 'bytecode', [])
numBytecode = len(bytecode) numBytecode = len(bytecode)
while i < numBytecode: while i < numBytecode:
op = bytecode[i] op = bytecode[i]