Mercurial > cpython-lru_cache-weakref
diff Include/object.h @ 52951:f92533925ea6
Merged revisions 71229,71271 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71229 | matthias.klose | 2009-04-05 14:43:08 +0200 (So, 05 Apr 2009) | 3 lines
- Py_DECREF: Add `do { ... } while (0)' to avoid compiler warnings.
(avoiding brown paper typo this time)
........
r71271 | matthias.klose | 2009-04-05 23:19:13 +0200 (So, 05 Apr 2009) | 3 lines
Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)'
to avoid compiler warnings.
........
| author | Matthias Klose <doko@ubuntu.com> |
|---|---|
| date | Tue, 07 Apr 2009 13:24:27 +0000 |
| parents | 28e30a5c639d |
| children | 2993f049e2c9 |
line wrap: on
line diff
--- a/Include/object.h Tue Apr 07 13:13:10 2009 +0000 +++ b/Include/object.h Tue Apr 07 13:24:27 2009 +0000 @@ -651,11 +651,13 @@ ((PyObject*)(op))->ob_refcnt++) #define Py_DECREF(op) \ - if (_Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA \ - --((PyObject*)(op))->ob_refcnt != 0) \ - _Py_CHECK_REFCNT(op) \ - else \ - _Py_Dealloc((PyObject *)(op)) + do { \ + if (_Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA \ + --((PyObject*)(op))->ob_refcnt != 0) \ + _Py_CHECK_REFCNT(op) \ + else \ + _Py_Dealloc((PyObject *)(op)); \ + } while (0) /* Safely decref `op` and set `op` to NULL, especially useful in tp_clear * and tp_dealloc implementatons. @@ -701,8 +703,8 @@ } while (0) /* Macros to use in case the object pointer may be NULL: */ -#define Py_XINCREF(op) if ((op) == NULL) ; else Py_INCREF(op) -#define Py_XDECREF(op) if ((op) == NULL) ; else Py_DECREF(op) +#define Py_XINCREF(op) do { if ((op) == NULL) ; else Py_INCREF(op); } while (0) +#define Py_XDECREF(op) do { if ((op) == NULL) ; else Py_DECREF(op); } while (0) /* These are provided as conveniences to Python runtime embedders, so that
