##// END OF EJS Templates
manifest: fix leak on error return from lazymanifest_filtercopy()...
Yuya Nishihara -
r39487:094d1f42 stable
parent child Browse files
Show More
@@ -731,16 +731,14 b' static lazymanifest *lazymanifest_filter'
731 arglist = Py_BuildValue(PY23("(s)", "(y)"),
731 arglist = Py_BuildValue(PY23("(s)", "(y)"),
732 self->lines[i].start);
732 self->lines[i].start);
733 if (!arglist) {
733 if (!arglist) {
734 return NULL;
734 goto bail;
735 }
735 }
736 result = PyObject_CallObject(matchfn, arglist);
736 result = PyObject_CallObject(matchfn, arglist);
737 Py_DECREF(arglist);
737 Py_DECREF(arglist);
738 /* if the callback raised an exception, just let it
738 /* if the callback raised an exception, just let it
739 * through and give up */
739 * through and give up */
740 if (!result) {
740 if (!result) {
741 free(copy->lines);
741 goto bail;
742 Py_DECREF(copy->pydata);
743 return NULL;
744 }
742 }
745 if (PyObject_IsTrue(result)) {
743 if (PyObject_IsTrue(result)) {
746 assert(!(self->lines[i].from_malloc));
744 assert(!(self->lines[i].from_malloc));
@@ -752,6 +750,7 b' static lazymanifest *lazymanifest_filter'
752 return copy;
750 return copy;
753 nomem:
751 nomem:
754 PyErr_NoMemory();
752 PyErr_NoMemory();
753 bail:
755 Py_XDECREF(copy);
754 Py_XDECREF(copy);
756 return NULL;
755 return NULL;
757 }
756 }
General Comments 0
You need to be logged in to leave comments. Login now