diff Python/ceval.c @ 44893:fdd74bdeee15 2.5

Fix two crashers (borrowed_ref_[34].py from the trunk).
author Guido van Rossum <guido@python.org>
date Wed, 23 Jan 2008 20:09:39 +0000
parents d5fc6e96091f
children 60fd0886811c
line wrap: on
line diff
--- a/Python/ceval.c	Wed Jan 23 17:54:14 2008 +0000
+++ b/Python/ceval.c	Wed Jan 23 20:09:39 2008 +0000
@@ -2036,6 +2036,7 @@
 						"__import__ not found");
 				break;
 			}
+			Py_INCREF(x);
 			v = POP();
 			u = TOP();
 			if (PyInt_AsLong(u) != -1 || PyErr_Occurred())
@@ -2057,11 +2058,14 @@
 			Py_DECREF(u);
 			if (w == NULL) {
 				u = POP();
+				Py_DECREF(x);
 				x = NULL;
 				break;
 			}
 			READ_TIMESTAMP(intr0);
-			x = PyEval_CallObject(x, w);
+			v = x;
+			x = PyEval_CallObject(v, w);
+			Py_DECREF(v);
 			READ_TIMESTAMP(intr1);
 			Py_DECREF(w);
 			SET_TOP(x);