[pypy-svn] r15214 - pypy/dist/pypy/lib

arigo at codespeak.net arigo at codespeak.net
Wed Jul 27 22:34:26 CEST 2005


Author: arigo
Date: Wed Jul 27 22:34:24 2005
New Revision: 15214

Modified:
   pypy/dist/pypy/lib/_marshal.py
Log:
Performance hacks.


Modified: pypy/dist/pypy/lib/_marshal.py
==============================================================================
--- pypy/dist/pypy/lib/_marshal.py	(original)
+++ pypy/dist/pypy/lib/_marshal.py	Wed Jul 27 22:34:24 2005
@@ -229,10 +229,10 @@
         self.bufpos = 0
 
     def read(self, n):
-        ret = self.bufstr[self.bufpos : self.bufpos+n]
-        self.bufpos += n
-        if self.bufpos > len(self.bufstr):
-            raise EOFError, "read past buffer"
+        start = self.bufpos
+        end = start + n
+        ret = self.bufstr[start:end]
+        self.bufpos = end
         return ret
 
 
@@ -311,13 +311,9 @@
         return Ellipsis
     dispatch[TYPE_ELLIPSIS] = load_ellipsis
 
-    def load_int(self):
-        return self.r_long()
-    dispatch[TYPE_INT] = load_int
-
-    def load_int64(self):
-        return self.r_long64()
-    dispatch[TYPE_INT64] = load_int64
+    dispatch[TYPE_INT] = r_long
+
+    dispatch[TYPE_INT64] = r_long64
 
     def load_long(self):
         size = self.r_long()
@@ -378,9 +374,7 @@
 
     def load_list(self):
         n = self.r_long()
-        list = []
-        for i in range(n):
-            list.append(self.load())
+        list = [self.load() for i in range(n)]
         return list
     dispatch[TYPE_LIST] = load_list
 



More information about the Pypy-commit mailing list