Issue #19219: Speed up marshal.loads(), and make pyc files slightly (5% to 10%) smaller.

This commit is contained in:
Antoine Pitrou
2013-10-12 22:25:39 +02:00
parent 4c6ed25b96
commit 1164dfcb86
4 changed files with 3472 additions and 3555 deletions

View File

@@ -7,7 +7,7 @@
extern "C" {
#endif
#define Py_MARSHAL_VERSION 3
#define Py_MARSHAL_VERSION 4
PyAPI_FUNC(void) PyMarshal_WriteLongToFile(long, FILE *, int);
PyAPI_FUNC(void) PyMarshal_WriteObjectToFile(PyObject *, FILE *, int);

View File

@@ -262,11 +262,11 @@ class BugsTestCase(unittest.TestCase):
def test_bad_reader(self):
class BadReader(io.BytesIO):
def read(self, n=-1):
b = super().read(n)
def readinto(self, buf):
n = super().readinto(buf)
if n is not None and n > 4:
b += b' ' * 10**6
return b
n += 10**6
return n
for value in (1.0, 1j, b'0123456789', '0123456789'):
self.assertRaises(ValueError, marshal.load,
BadReader(marshal.dumps(value)))

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff