merge
This commit is contained in:
commit
c6ae813011
|
@ -136,6 +136,7 @@ static PyObject *empty_tuple = NULL;
|
|||
/* For looking up name pairs in copyreg._extension_registry. */
|
||||
static PyObject *two_tuple = NULL;
|
||||
|
||||
_Py_IDENTIFIER(__name__);
|
||||
_Py_IDENTIFIER(modules);
|
||||
|
||||
static int
|
||||
|
@ -2599,7 +2600,6 @@ save_dict(PicklerObject *self, PyObject *obj)
|
|||
static int
|
||||
save_global(PicklerObject *self, PyObject *obj, PyObject *name)
|
||||
{
|
||||
static PyObject *name_str = NULL;
|
||||
PyObject *global_name = NULL;
|
||||
PyObject *module_name = NULL;
|
||||
PyObject *module = NULL;
|
||||
|
@ -2608,18 +2608,12 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
|
|||
|
||||
const char global_op = GLOBAL;
|
||||
|
||||
if (name_str == NULL) {
|
||||
name_str = PyUnicode_InternFromString("__name__");
|
||||
if (name_str == NULL)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (name) {
|
||||
global_name = name;
|
||||
Py_INCREF(global_name);
|
||||
}
|
||||
else {
|
||||
global_name = PyObject_GetAttr(obj, name_str);
|
||||
global_name = _PyObject_GetAttrId(obj, &PyId___name__);
|
||||
if (global_name == NULL)
|
||||
goto error;
|
||||
}
|
||||
|
@ -3016,17 +3010,16 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
|
|||
/* Protocol 2 special case: if callable's name is __newobj__, use
|
||||
NEWOBJ. */
|
||||
if (use_newobj) {
|
||||
static PyObject *newobj_str = NULL, *name_str = NULL;
|
||||
static PyObject *newobj_str = NULL;
|
||||
PyObject *name;
|
||||
|
||||
if (newobj_str == NULL) {
|
||||
newobj_str = PyUnicode_InternFromString("__newobj__");
|
||||
name_str = PyUnicode_InternFromString("__name__");
|
||||
if (newobj_str == NULL || name_str == NULL)
|
||||
if (newobj_str == NULL)
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = PyObject_GetAttr(callable, name_str);
|
||||
name = _PyObject_GetAttrId(callable, &PyId___name__);
|
||||
if (name == NULL) {
|
||||
if (PyErr_ExceptionMatches(PyExc_AttributeError))
|
||||
PyErr_Clear();
|
||||
|
|
|
@ -1133,13 +1133,25 @@ Insert a new item x into the array before position i.");
|
|||
static PyObject *
|
||||
array_buffer_info(arrayobject *self, PyObject *unused)
|
||||
{
|
||||
PyObject* retval = NULL;
|
||||
PyObject *retval = NULL, *v;
|
||||
|
||||
retval = PyTuple_New(2);
|
||||
if (!retval)
|
||||
return NULL;
|
||||
|
||||
PyTuple_SET_ITEM(retval, 0, PyLong_FromVoidPtr(self->ob_item));
|
||||
PyTuple_SET_ITEM(retval, 1, PyLong_FromLong((long)(Py_SIZE(self))));
|
||||
v = PyLong_FromVoidPtr(self->ob_item);
|
||||
if (v == NULL) {
|
||||
Py_DECREF(retval);
|
||||
return NULL;
|
||||
}
|
||||
PyTuple_SET_ITEM(retval, 0, v);
|
||||
|
||||
v = PyLong_FromLong((long)(Py_SIZE(self)));
|
||||
if (v == NULL) {
|
||||
Py_DECREF(retval);
|
||||
return NULL;
|
||||
}
|
||||
PyTuple_SET_ITEM(retval, 1, v);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -275,6 +275,7 @@ fold_unaryops_on_constants(unsigned char *codestr, PyObject *consts, PyObject *v
|
|||
len_consts = PyList_GET_SIZE(consts);
|
||||
if (PyList_Append(consts, newconst)) {
|
||||
Py_DECREF(newconst);
|
||||
PyErr_Clear();
|
||||
return 0;
|
||||
}
|
||||
Py_DECREF(newconst);
|
||||
|
|
Loading…
Reference in New Issue