mirror of
https://github.com/python/cpython.git
synced 2025-07-12 13:55:34 +00:00
It's unclear whether PyMarshal_XXX() are part of the public or private API.
They're named as if public, so I did a Bad Thing by changing PyMarshal_ReadObjectFromFile() to suck up the remainder of the file in one gulp: anyone who counted on that leaving the file pointer merely at the end of the next object would be screwed. So restored PyMarshal_ReadObjectFromFile() to its earlier state, renamed the new greedy code to PyMarshal_ReadLastObjectFromFile(), and changed Python internals to call the latter instead.
This commit is contained in:
parent
09ac1fde1c
commit
d9b9ac855c
4 changed files with 52 additions and 35 deletions
|
@ -555,7 +555,7 @@ read_compiled_module(char *cpathname, FILE *fp)
|
|||
{
|
||||
PyObject *co;
|
||||
|
||||
co = PyMarshal_ReadObjectFromFile(fp);
|
||||
co = PyMarshal_ReadLastObjectFromFile(fp);
|
||||
/* Ugly: rd_object() may return NULL with or without error */
|
||||
if (co == NULL || !PyCode_Check(co)) {
|
||||
if (!PyErr_Occurred())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue