Commit 32083263 authored by Jim Fulton's avatar Jim Fulton

Changed branch on failure to get oid to

skip oid DECREFing logic.
parent cde0e45e
...@@ -190,7 +190,7 @@ persistent_id_call(persistent_id *self, PyObject *args, PyObject *kwargs) ...@@ -190,7 +190,7 @@ persistent_id_call(persistent_id *self, PyObject *args, PyObject *kwargs)
(self->new_oid=PyObject_GetAttr(self->jar, py_new_oid))) (self->new_oid=PyObject_GetAttr(self->jar, py_new_oid)))
goto err; goto err;
ASSIGN(oid, PyObject_CallObject(self->new_oid, NULL)); ASSIGN(oid, PyObject_CallObject(self->new_oid, NULL));
UNLESS (oid) goto err; UNLESS (oid) goto null_oid;
if (PyObject_SetAttr(object, py__p_jar, self->jar) < 0) goto err; if (PyObject_SetAttr(object, py__p_jar, self->jar) < 0) goto err;
if (PyObject_SetAttr(object, py__p_oid, oid) < 0) goto err; if (PyObject_SetAttr(object, py__p_oid, oid) < 0) goto err;
UNLESS (r=PyTuple_New(1)) goto err; UNLESS (r=PyTuple_New(1)) goto err;
...@@ -254,6 +254,7 @@ err: ...@@ -254,6 +254,7 @@ err:
Py_DECREF(oid); Py_DECREF(oid);
oid=NULL; oid=NULL;
null_oid:
return_oid: return_oid:
Py_XDECREF(jar); Py_XDECREF(jar);
Py_XDECREF(klass); Py_XDECREF(klass);
...@@ -305,7 +306,7 @@ void ...@@ -305,7 +306,7 @@ void
initcoptimizations() initcoptimizations()
{ {
PyObject *m, *d; PyObject *m, *d;
char *rev="$Revision: 1.4 $"; char *rev="$Revision: 1.5 $";
#define make_string(S) if (! (py_ ## S=PyString_FromString(#S))) return #define make_string(S) if (! (py_ ## S=PyString_FromString(#S))) return
make_string(_p_oid); make_string(_p_oid);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment