[Python-checkins] cpython: Fix refleak: PyObject_GetItem returns a new reference, not a borrowed one like
antoine.pitrou
python-checkins at python.org
Thu Apr 19 18:23:57 CEST 2012
http://hg.python.org/cpython/rev/293180d199f2
changeset: 76419:293180d199f2
user: Antoine Pitrou <solipsis at pitrou.net>
date: Thu Apr 19 18:21:04 2012 +0200
summary:
Fix refleak: PyObject_GetItem returns a new reference, not a borrowed one like PyDict_GetItem.
files:
Python/ceval.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Python/ceval.c b/Python/ceval.c
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1940,6 +1940,7 @@
"__build_class__ not found");
break;
}
+ Py_INCREF(x);
}
else {
PyObject *build_class_str = _PyUnicode_FromId(&PyId___build_class__);
@@ -1953,7 +1954,6 @@
break;
}
}
- Py_INCREF(x);
PUSH(x);
break;
}
@@ -2092,6 +2092,7 @@
}
if (x == NULL) {
x = PyDict_GetItem(f->f_globals, w);
+ Py_XINCREF(x);
if (x == NULL) {
if (PyDict_CheckExact(f->f_builtins)) {
x = PyDict_GetItem(f->f_builtins, w);
@@ -2101,6 +2102,7 @@
NAME_ERROR_MSG, w);
break;
}
+ Py_INCREF(x);
}
else {
x = PyObject_GetItem(f->f_builtins, w);
@@ -2113,7 +2115,6 @@
}
}
}
- Py_INCREF(x);
}
PUSH(x);
DISPATCH();
@@ -2186,7 +2187,6 @@
break;
}
}
- Py_INCREF(x);
PUSH(x);
DISPATCH();
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list