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

David Abrahams dave at boost-consulting.com
Fri Jul 16 01:25:46 CEST 2004


Tim Peters <tim.peters at gmail.com> writes:

[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.

FWIW our experience in the C++ community suggests that deallocate-and-NULL tends to hide bugs. In general we prefer to use deallocate-and-fill-pointer-with-garbage. I'm not sure if the experience translates here, of course.

-- Dave Abrahams Boost Consulting http://www.boost-consulting.com



More information about the Python-Dev mailing list