Dolda2000 GitWeb
/
coe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make namedtype creation compatible with older Python versions.
[coe.git]
/
coe
/
bin.py
diff --git
a/coe/bin.py
b/coe/bin.py
index
0aa6e5a
..
e965a79
100644
(file)
--- a/
coe/bin.py
+++ b/
coe/bin.py
@@
-152,9
+152,6
@@
class referror(fmterror):
def __init__(self):
super().__init__("bad backref")
def __init__(self):
super().__init__("bad backref")
-class namedtype(type):
- pass
-
class decoder(object):
def __init__(self):
self.reftab = []
class decoder(object):
def __init__(self):
self.reftab = []
@@
-225,6
+222,9
@@
class decoder(object):
return buf
buf[key] = self.loadtagged(fp, tag)
return buf
buf[key] = self.loadtagged(fp, tag)
+ def makeobjtype(self, nm):
+ return data.namedtype.make(str(nm), (data.obj, object), {}, typename=nm)
+
def loadobj(self, fp, ref=False):
if ref:
refid = len(self.reftab)
def loadobj(self, fp, ref=False):
if ref:
refid = len(self.reftab)
@@
-232,8
+232,7
@@
class decoder(object):
nm = self.load(fp)
typ = self.namedtypes.get(nm)
if typ is None:
nm = self.load(fp)
typ = self.namedtypes.get(nm)
if typ is None:
- typ = self.namedtypes[nm] = namedtype(str(nm), (data.obj, object), {})
- typ.typename = nm
+ typ = self.namedtypes[nm] = self.makeobjtype(nm)
ret = typ()
if ref:
self.reftab[refid] = ret
ret = typ()
if ref:
self.reftab[refid] = ret
@@
-260,10
+259,10
@@
class decoder(object):
return self.reftab[idx]
return self.addref(self.loadint(fp))
elif pri == T_STR:
return self.reftab[idx]
return self.addref(self.loadint(fp))
elif pri == T_STR:
- ret = self.
addref(self.loadstr(fp)
)
+ ret = self.
loadstr(fp
)
if sec == STR_SYM:
if sec == STR_SYM:
- return
data.symbol.get("", ret
)
- return
ret
+ return
self.addref(data.symbol.get("", ret)
)
+ return
self.addref(ret)
elif pri == T_BIT:
ln = self.loadint(fp)
ret = self.addref(fp.read(ln))
elif pri == T_BIT:
ln = self.loadint(fp)
ret = self.addref(fp.read(ln))