remove current_filename optimization from marshal (#3423) (closes bpo-31384)
This commit is contained in:
parent
a6a4dc816d
commit
c988ae01fe
|
@ -647,7 +647,6 @@ typedef struct {
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int depth;
|
int depth;
|
||||||
PyObject *readable; /* Stream-like object being read from */
|
PyObject *readable; /* Stream-like object being read from */
|
||||||
PyObject *current_filename;
|
|
||||||
char *ptr;
|
char *ptr;
|
||||||
char *end;
|
char *end;
|
||||||
char *buf;
|
char *buf;
|
||||||
|
@ -1390,18 +1389,6 @@ r_object(RFILE *p)
|
||||||
filename = r_object(p);
|
filename = r_object(p);
|
||||||
if (filename == NULL)
|
if (filename == NULL)
|
||||||
goto code_error;
|
goto code_error;
|
||||||
if (PyUnicode_CheckExact(filename)) {
|
|
||||||
if (p->current_filename != NULL) {
|
|
||||||
if (!PyUnicode_Compare(filename, p->current_filename)) {
|
|
||||||
Py_DECREF(filename);
|
|
||||||
Py_INCREF(p->current_filename);
|
|
||||||
filename = p->current_filename;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
p->current_filename = filename;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
name = r_object(p);
|
name = r_object(p);
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
goto code_error;
|
goto code_error;
|
||||||
|
@ -1484,7 +1471,6 @@ PyMarshal_ReadShortFromFile(FILE *fp)
|
||||||
assert(fp);
|
assert(fp);
|
||||||
rf.readable = NULL;
|
rf.readable = NULL;
|
||||||
rf.fp = fp;
|
rf.fp = fp;
|
||||||
rf.current_filename = NULL;
|
|
||||||
rf.end = rf.ptr = NULL;
|
rf.end = rf.ptr = NULL;
|
||||||
rf.buf = NULL;
|
rf.buf = NULL;
|
||||||
res = r_short(&rf);
|
res = r_short(&rf);
|
||||||
|
@ -1500,7 +1486,6 @@ PyMarshal_ReadLongFromFile(FILE *fp)
|
||||||
long res;
|
long res;
|
||||||
rf.fp = fp;
|
rf.fp = fp;
|
||||||
rf.readable = NULL;
|
rf.readable = NULL;
|
||||||
rf.current_filename = NULL;
|
|
||||||
rf.ptr = rf.end = NULL;
|
rf.ptr = rf.end = NULL;
|
||||||
rf.buf = NULL;
|
rf.buf = NULL;
|
||||||
res = r_long(&rf);
|
res = r_long(&rf);
|
||||||
|
@ -1562,7 +1547,6 @@ PyMarshal_ReadObjectFromFile(FILE *fp)
|
||||||
PyObject *result;
|
PyObject *result;
|
||||||
rf.fp = fp;
|
rf.fp = fp;
|
||||||
rf.readable = NULL;
|
rf.readable = NULL;
|
||||||
rf.current_filename = NULL;
|
|
||||||
rf.depth = 0;
|
rf.depth = 0;
|
||||||
rf.ptr = rf.end = NULL;
|
rf.ptr = rf.end = NULL;
|
||||||
rf.buf = NULL;
|
rf.buf = NULL;
|
||||||
|
@ -1583,7 +1567,6 @@ PyMarshal_ReadObjectFromString(const char *str, Py_ssize_t len)
|
||||||
PyObject *result;
|
PyObject *result;
|
||||||
rf.fp = NULL;
|
rf.fp = NULL;
|
||||||
rf.readable = NULL;
|
rf.readable = NULL;
|
||||||
rf.current_filename = NULL;
|
|
||||||
rf.ptr = (char *)str;
|
rf.ptr = (char *)str;
|
||||||
rf.end = (char *)str + len;
|
rf.end = (char *)str + len;
|
||||||
rf.buf = NULL;
|
rf.buf = NULL;
|
||||||
|
@ -1723,7 +1706,6 @@ marshal_load(PyObject *module, PyObject *file)
|
||||||
rf.depth = 0;
|
rf.depth = 0;
|
||||||
rf.fp = NULL;
|
rf.fp = NULL;
|
||||||
rf.readable = file;
|
rf.readable = file;
|
||||||
rf.current_filename = NULL;
|
|
||||||
rf.ptr = rf.end = NULL;
|
rf.ptr = rf.end = NULL;
|
||||||
rf.buf = NULL;
|
rf.buf = NULL;
|
||||||
if ((rf.refs = PyList_New(0)) != NULL) {
|
if ((rf.refs = PyList_New(0)) != NULL) {
|
||||||
|
@ -1782,7 +1764,6 @@ marshal_loads_impl(PyObject *module, Py_buffer *bytes)
|
||||||
PyObject* result;
|
PyObject* result;
|
||||||
rf.fp = NULL;
|
rf.fp = NULL;
|
||||||
rf.readable = NULL;
|
rf.readable = NULL;
|
||||||
rf.current_filename = NULL;
|
|
||||||
rf.ptr = s;
|
rf.ptr = s;
|
||||||
rf.end = s + n;
|
rf.end = s + n;
|
||||||
rf.depth = 0;
|
rf.depth = 0;
|
||||||
|
|
Loading…
Reference in New Issue