mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
Issue #22783: Pickling now uses the NEWOBJ opcode instead of the NEWOBJ_EX
opcode if possible.
This commit is contained in:
parent
01bdd9a980
commit
707b5ccde5
5 changed files with 150 additions and 141 deletions
|
|
@ -3506,20 +3506,19 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
|
|||
}
|
||||
PyErr_Clear();
|
||||
}
|
||||
else if (self->proto >= 4) {
|
||||
_Py_IDENTIFIER(__newobj_ex__);
|
||||
use_newobj_ex = PyUnicode_Check(name) &&
|
||||
PyUnicode_Compare(
|
||||
name, _PyUnicode_FromId(&PyId___newobj_ex__)) == 0;
|
||||
Py_DECREF(name);
|
||||
}
|
||||
else {
|
||||
_Py_IDENTIFIER(__newobj__);
|
||||
use_newobj = PyUnicode_Check(name) &&
|
||||
PyUnicode_Compare(
|
||||
name, _PyUnicode_FromId(&PyId___newobj__)) == 0;
|
||||
Py_DECREF(name);
|
||||
else if (PyUnicode_Check(name)) {
|
||||
if (self->proto >= 4) {
|
||||
_Py_IDENTIFIER(__newobj_ex__);
|
||||
use_newobj_ex = PyUnicode_Compare(
|
||||
name, _PyUnicode_FromId(&PyId___newobj_ex__)) == 0;
|
||||
}
|
||||
if (!use_newobj_ex) {
|
||||
_Py_IDENTIFIER(__newobj__);
|
||||
use_newobj = PyUnicode_Compare(
|
||||
name, _PyUnicode_FromId(&PyId___newobj__)) == 0;
|
||||
}
|
||||
}
|
||||
Py_XDECREF(name);
|
||||
}
|
||||
|
||||
if (use_newobj_ex) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue