From: Matthias Klose Date: Sun, 5 Apr 2009 21:19:13 +0000 (+0000) Subject: Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)' X-Git-Tag: v2.7a1~1548 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91a3b9e4f08a5e1325642c68543495c32fc853f9;p=python Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)' to avoid compiler warnings. --- diff --git a/Include/object.h b/Include/object.h index 3d898f905d..1bc13e7c2a 100644 --- a/Include/object.h +++ b/Include/object.h @@ -801,8 +801,8 @@ PyAPI_FUNC(void) _Py_AddToAllObjects(PyObject *, int force); } 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 diff --git a/Misc/NEWS b/Misc/NEWS index b8d3883a86..e9ee104a5d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -207,7 +207,8 @@ Core and Builtins - Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with short file names. -- Py_DECREF: Add `do { ... } while (0)' to avoid compiler warnings. +- Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)' + to avoid compiler warnings. Library ------- diff --git a/Modules/readline.c b/Modules/readline.c index f5a54bc08f..d09f09c731 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -694,13 +694,13 @@ on_completion_display_matches_hook(char **matches, r = PyObject_CallFunction(completion_display_matches_hook, "sOi", matches[0], m, max_length); - Py_DECREF(m), m=NULL; + Py_DECREF(m); m=NULL; if (r == NULL || (r != Py_None && PyInt_AsLong(r) == -1 && PyErr_Occurred())) { goto error; } - Py_XDECREF(r), r=NULL; + Py_XDECREF(r); r=NULL; if (0) { error: