diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2006-04-15 18:14:21 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2006-04-15 18:14:21 (GMT) |
commit | ab0e284a24a95462ae2c3ca01e991bdfe1dd6d2d (patch) | |
tree | d947db582cc79f5a814f52d141db5e015b517ea0 /Python/pystate.c | |
parent | 48bbaf23753fa5bd394460a46846a49f44b7eab4 (diff) | |
download | cpython-ab0e284a24a95462ae2c3ca01e991bdfe1dd6d2d.zip cpython-ab0e284a24a95462ae2c3ca01e991bdfe1dd6d2d.tar.gz cpython-ab0e284a24a95462ae2c3ca01e991bdfe1dd6d2d.tar.bz2 |
Zap ZAP.
Diffstat (limited to 'Python/pystate.c')
-rw-r--r-- | Python/pystate.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/Python/pystate.c b/Python/pystate.c index 9c85b5c..b8f460f 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -23,13 +23,6 @@ the expense of doing their own locking). #endif -#define ZAP(x) { \ - PyObject *tmp = (PyObject *)(x); \ - (x) = NULL; \ - Py_XDECREF(tmp); \ -} - - #ifdef WITH_THREAD #include "pythread.h" static PyThread_type_lock head_mutex = NULL; /* Protects interp->tstate_head */ @@ -106,12 +99,12 @@ PyInterpreterState_Clear(PyInterpreterState *interp) for (p = interp->tstate_head; p != NULL; p = p->next) PyThreadState_Clear(p); HEAD_UNLOCK(); - ZAP(interp->codec_search_path); - ZAP(interp->codec_search_cache); - ZAP(interp->codec_error_registry); - ZAP(interp->modules); - ZAP(interp->sysdict); - ZAP(interp->builtins); + Py_CLEAR(interp->codec_search_path); + Py_CLEAR(interp->codec_search_cache); + Py_CLEAR(interp->codec_error_registry); + Py_CLEAR(interp->modules); + Py_CLEAR(interp->sysdict); + Py_CLEAR(interp->builtins); } @@ -215,23 +208,23 @@ PyThreadState_Clear(PyThreadState *tstate) fprintf(stderr, "PyThreadState_Clear: warning: thread still has a frame\n"); - ZAP(tstate->frame); + Py_CLEAR(tstate->frame); - ZAP(tstate->dict); - ZAP(tstate->async_exc); + Py_CLEAR(tstate->dict); + Py_CLEAR(tstate->async_exc); - ZAP(tstate->curexc_type); - ZAP(tstate->curexc_value); - ZAP(tstate->curexc_traceback); + Py_CLEAR(tstate->curexc_type); + Py_CLEAR(tstate->curexc_value); + Py_CLEAR(tstate->curexc_traceback); - ZAP(tstate->exc_type); - ZAP(tstate->exc_value); - ZAP(tstate->exc_traceback); + Py_CLEAR(tstate->exc_type); + Py_CLEAR(tstate->exc_value); + Py_CLEAR(tstate->exc_traceback); tstate->c_profilefunc = NULL; tstate->c_tracefunc = NULL; - ZAP(tstate->c_profileobj); - ZAP(tstate->c_traceobj); + Py_CLEAR(tstate->c_profileobj); + Py_CLEAR(tstate->c_traceobj); } @@ -360,7 +353,7 @@ PyThreadState_SetAsyncExc(long id, PyObject *exc) { for (p = interp->tstate_head; p != NULL; p = p->next) { if (p->thread_id != id) continue; - ZAP(p->async_exc); + Py_CLEAR(p->async_exc); Py_XINCREF(exc); p->async_exc = exc; count += 1; |