Issue #19437: Cleanup r_ref() of the marshal module

This commit is contained in:
Victor Stinner 2013-10-31 17:09:01 +01:00
parent d5cae6f143
commit 359fabc19f
1 changed files with 6 additions and 5 deletions

View File

@ -827,11 +827,12 @@ r_ref_insert(PyObject *o, Py_ssize_t idx, int flag, RFILE *p)
static PyObject * static PyObject *
r_ref(PyObject *o, int flag, RFILE *p) r_ref(PyObject *o, int flag, RFILE *p)
{ {
if (o != NULL && flag) { /* currently only FLAG_REF is defined */ assert(flag & FLAG_REF);
if (PyList_Append(p->refs, o) < 0) { if (o == NULL)
Py_DECREF(o); /* release the new object */ return NULL;
return NULL; if (PyList_Append(p->refs, o) < 0) {
} Py_DECREF(o); /* release the new object */
return NULL;
} }
return o; return o;
} }