summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2008-01-23 20:19:01 (GMT)
committerGuido van Rossum <guido@python.org>2008-01-23 20:19:01 (GMT)
commit1d9a9eaa89e166d814eb55acc1d6271087fadc83 (patch)
tree9f80971b606f077119a32bd2fd5a51e3c1910f0d /Python/ceval.c
parentb2302ba9771d3c2795ae6c78d881b0c4715e2f63 (diff)
downloadcpython-1d9a9eaa89e166d814eb55acc1d6271087fadc83.zip
cpython-1d9a9eaa89e166d814eb55acc1d6271087fadc83.tar.gz
cpython-1d9a9eaa89e166d814eb55acc1d6271087fadc83.tar.bz2
Fix two crashers.
Diffstat (limited to 'Python/ceval.c')
-rw-r--r--Python/ceval.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index 5433b88..3e0ff76 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2066,6 +2066,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
"__import__ not found");
break;
}
+ Py_INCREF(x);
v = POP();
u = TOP();
if (PyInt_AsLong(u) != -1 || PyErr_Occurred())
@@ -2087,11 +2088,14 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
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);