[pypy-svn] r65931 - pypy/branch/pyjitpl5/pypy/jit/tl/spli

fijal at codespeak.net fijal at codespeak.net
Wed Jun 24 20:57:13 CEST 2009


Author: fijal
Date: Wed Jun 24 20:57:12 2009
New Revision: 65931

Modified:
   pypy/branch/pyjitpl5/pypy/jit/tl/spli/serializer.py
Log:
Store length of list


Modified: pypy/branch/pyjitpl5/pypy/jit/tl/spli/serializer.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/tl/spli/serializer.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/tl/spli/serializer.py	Wed Jun 24 20:57:12 2009
@@ -45,9 +45,10 @@
         raise NotSupportedFormat(c[start])
 
 def unserialize_consts(constrepr):
-    pos = 0
+    pos = int_lgt
     consts_w = []
-    while pos < len(constrepr):
+    num = runpack('i', constrepr[:int_lgt])
+    for i in range(num):
         next_const, pos = unserialize_const(constrepr, pos)
         consts_w.append(next_const)
     return consts_w
@@ -57,7 +58,8 @@
 def serialize(code):
     header = struct.pack(FMT, code.co_argcount, code.co_nlocals,
                          code.co_stacksize, code.co_flags, len(code.co_code))
-    constsrepr = "".join([serialize_const(const) for const in code.co_consts])
+    constsrepr = (struct.pack('i', len(code.co_consts)) + 
+                  "".join([serialize_const(const) for const in code.co_consts]))
     return header + code.co_code + constsrepr
 
 def deserialize(coderepr, space=None):



More information about the Pypy-commit mailing list