[Python-Dev] Proposal: C API Macro to decref and set to NULL
Tim Peters
tim.peters at gmail.com
Tue Jul 13 00:50:31 CEST 2004
[Jim Fulton]
...
> If there are no objections I'll add the following definition to object.h,
> after the definition for Py_DECREF:
>
> #define Py_CLEAR(op) \
> do { \
> if (op) { \
> PyObject *tmp = (op); \
> (op) = NULL; \
> Py_DECREF(tmp); \
> } \
> } while (0)
>
> and update the docs and the tutorial on creating types in C.
+1. At least pystate.c can get rid of its functionally identical
private ZAP macro then.
BTW, re-invented at least as often is a VISIT macro for use in
tp_traverse slots, like typeobject.c's (and several other files')
#define VISIT(SLOT) \
if (SLOT) { \
err = visit((PyObject *)(SLOT), arg); \
if (err) \
return err; \
}
More information about the Python-Dev
mailing list