[Python-Dev] Proposal: C API Macro to decref and set to NULL (original) (raw)

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 PyDECREF:

_#define PyCLEAR(op) _ _do { _ _if (op) { _ _PyObject *tmp = (op); _ _(op) = NULL; _ _PyDECREF(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