bin: Fixed context-less load().
[coe.git] / coe / bin.py
index de3d6fa..e603ff8 100644 (file)
@@ -223,7 +223,7 @@ class decoder(object):
             buf[key] = self.loadtagged(fp, tag)
 
     def makeobjtype(self, nm):
-        return data.namedtype(str(nm), (data.obj, object), {}, typename=nm)
+        return data.namedtype.make(str(nm), (data.obj, object), {}, typename=nm)
 
     def loadobj(self, fp, ref=False):
         if ref:
@@ -259,10 +259,10 @@ class decoder(object):
                 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:
-                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))
@@ -292,4 +292,4 @@ class decoder(object):
         return self.loadtagged(fp, tag)
 
 def load(fp):
-    decoder().load(fp)
+    return decoder().load(fp)