Kaydet (Commit) 1164dfcb authored tarafından Antoine Pitrou's avatar Antoine Pitrou

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

üst 4c6ed25b
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
extern "C" { extern "C" {
#endif #endif
#define Py_MARSHAL_VERSION 3 #define Py_MARSHAL_VERSION 4
PyAPI_FUNC(void) PyMarshal_WriteLongToFile(long, FILE *, int); PyAPI_FUNC(void) PyMarshal_WriteLongToFile(long, FILE *, int);
PyAPI_FUNC(void) PyMarshal_WriteObjectToFile(PyObject *, FILE *, int); PyAPI_FUNC(void) PyMarshal_WriteObjectToFile(PyObject *, FILE *, int);
......
...@@ -262,11 +262,11 @@ class BugsTestCase(unittest.TestCase): ...@@ -262,11 +262,11 @@ class BugsTestCase(unittest.TestCase):
def test_bad_reader(self): def test_bad_reader(self):
class BadReader(io.BytesIO): class BadReader(io.BytesIO):
def read(self, n=-1): def readinto(self, buf):
b = super().read(n) n = super().readinto(buf)
if n is not None and n > 4: if n is not None and n > 4:
b += b' ' * 10**6 n += 10**6
return b return n
for value in (1.0, 1j, b'0123456789', '0123456789'): for value in (1.0, 1j, b'0123456789', '0123456789'):
self.assertRaises(ValueError, marshal.load, self.assertRaises(ValueError, marshal.load,
BadReader(marshal.dumps(value))) BadReader(marshal.dumps(value)))
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment