Skip to content

Commit

Permalink
Python3 compatibility fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Storyyeller committed Apr 27, 2017
1 parent 51de90f commit 7b7f4a7
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 14 deletions.
3 changes: 2 additions & 1 deletion Krakatau/assembler/assembly.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ def _assembleNoCP(self, error):
afterpool.ref(self.this)
afterpool.ref(self.super)
writeU16Count(afterpool, error, self.interfaces, 'interface')
map(afterpool.ref, self.interfaces)
for i in self.interfaces:
afterpool.ref(i)

writeU16Count(afterpool, error, self.fields, 'field')
for field in self.fields:
Expand Down
2 changes: 1 addition & 1 deletion Krakatau/assembler/disassembly.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def __init__(self, clsdata, roundtrip):
self.forcedraw = {0}
for attr in clsdata.getattrs(b'InnerClasses'):
r = attr.stream()
for _ in xrange(r.u16()):
for _ in range(r.u16()):
inner, outer, _, _ = r.u16(), r.u16(), r.u16(), r.u16()
if inner != outer and clsdata.pool.getclsutf(inner) == clsdata.pool.getclsutf(outer):
self.forcedraw.add(inner)
Expand Down
20 changes: 10 additions & 10 deletions Krakatau/classfileformat/classdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ def getclsutf(self, ind):
class BootstrapMethodsData(object):
def __init__(self, r):
self.slots = []
for _ in xrange(r.u16()):
for _ in range(r.u16()):
first = r.u16()
argcount = r.u16()
refs = [first] + [r.u16() for _ in xrange(argcount)]
refs = [first] + [r.u16() for _ in range(argcount)]
self.slots.append(SlotData('Bootstrap', None, refs))

class CodeData(object):
Expand All @@ -67,8 +67,8 @@ def __init__(self, r, pool, short):
self.stack, self.locals, codelen = r.u16(), r.u16(), r.u32()

self.bytecode = r.bytes(codelen)
self.exceptions = [ExceptData(r.u16(), r.u16(), r.u16(), r.u16()) for _ in xrange(r.u16())]
self.attributes = [AttributeData(r) for _ in xrange(r.u16())]
self.exceptions = [ExceptData(r.u16(), r.u16(), r.u16(), r.u16()) for _ in range(r.u16())]
self.attributes = [AttributeData(r) for _ in range(r.u16())]

class AttributeData(object):
def __init__(self, r, pool=None):
Expand All @@ -89,12 +89,12 @@ def stream(self): return Reader(self.raw)
class FieldData(object):
def __init__(self, r):
self.access, self.name, self.desc = r.u16(), r.u16(), r.u16()
self.attributes = [AttributeData(r) for _ in xrange(r.u16())]
self.attributes = [AttributeData(r) for _ in range(r.u16())]

class MethodData(object):
def __init__(self, r):
self.access, self.name, self.desc = r.u16(), r.u16(), r.u16()
self.attributes = [AttributeData(r) for _ in xrange(r.u16())]
self.attributes = [AttributeData(r) for _ in range(r.u16())]

class ClassData(object):
def __init__(self, r):
Expand All @@ -104,10 +104,10 @@ def __init__(self, r):
self.pool = ConstantPoolData(r)

self.access, self.this, self.super = r.u16(), r.u16(), r.u16()
self.interfaces = [r.u16() for _ in xrange(r.u16())]
self.fields = [FieldData(r) for _ in xrange(r.u16())]
self.methods = [MethodData(r) for _ in xrange(r.u16())]
self.attributes = [AttributeData(r, pool=self.pool) for _ in xrange(r.u16())]
self.interfaces = [r.u16() for _ in range(r.u16())]
self.fields = [FieldData(r) for _ in range(r.u16())]
self.methods = [MethodData(r) for _ in range(r.u16())]
self.attributes = [AttributeData(r, pool=self.pool) for _ in range(r.u16())]
# assert r.done()

def getattrs(self, name):
Expand Down
9 changes: 7 additions & 2 deletions disassemble.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@
import functools
import os.path
import time, zipfile, sys
import StringIO

try:
from StringIO import StringIO
except ImportError:
from io import StringIO


import Krakatau
from Krakatau import script_util
Expand Down Expand Up @@ -34,7 +39,7 @@ def disassembleSub(readTarget, out, targets, roundtrip=False, outputClassName=Tr
else:
name = target.rpartition('.')[0] or target

output = StringIO.StringIO()
output = StringIO()
# output = sys.stdout
Disassembler(clsdata, output.write, roundtrip=roundtrip).disassemble()

Expand Down

0 comments on commit 7b7f4a7

Please sign in to comment.