diff Python/ceval.c @ 44894:4c8308ac20cd legacy-trunk

Fix two crashers.
author Guido van Rossum <guido@python.org>
date Wed, 23 Jan 2008 20:19:01 +0000
parents 26384b8180c7
children a3d5700b1d5a
line wrap: on
line diff
--- a/Python/ceval.c	Wed Jan 23 17:15:06 2008 +0000
+++ b/Python/ceval.c	Wed Jan 23 20:19:01 2008 +0000
@@ -2066,6 +2066,7 @@
 						"__import__ not found");
 				break;
 			}
+			Py_INCREF(x);
 			v = POP();
 			u = TOP();
 			if (PyInt_AsLong(u) != -1 || PyErr_Occurred())
@@ -2087,11 +2088,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);