[Python-checkins] r71356 - in python/branches/py3k: Include/object.h Misc/NEWS Modules/readline.c

matthias.klose python-checkins at python.org
Tue Apr 7 15:24:29 CEST 2009


Author: matthias.klose
Date: Tue Apr 7 15:24:27 2009
New Revision: 71356
Log:
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.
........
Modified:
 python/branches/py3k/ (props changed)
 python/branches/py3k/Include/object.h
 python/branches/py3k/Misc/NEWS
 python/branches/py3k/Modules/readline.c
Modified: python/branches/py3k/Include/object.h
==============================================================================
--- python/branches/py3k/Include/object.h	(original)
+++ python/branches/py3k/Include/object.h	Tue Apr 7 15:24:27 2009
@@ -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
Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Tue Apr 7 15:24:27 2009
@@ -12,6 +12,9 @@
 Core and Builtins
 -----------------
 
+- Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)'
+ to avoid compiler warnings.
+
 Library
 -------
 
@@ -78,8 +81,6 @@
 - Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with
 short file names.
 
-- Py_DECREF: Add `do { ... } while (0)' to avoid compiler warnings.
-
 Library
 -------
 
Modified: python/branches/py3k/Modules/readline.c
==============================================================================
--- python/branches/py3k/Modules/readline.c	(original)
+++ python/branches/py3k/Modules/readline.c	Tue Apr 7 15:24:27 2009
@@ -693,13 +693,13 @@
 	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 && PyLong_AsLong(r) == -1 && PyErr_Occurred())) {
 		goto error;
 	}
-	Py_XDECREF(r), r=NULL;
+	Py_XDECREF(r); r=NULL;
 
 	if (0) {
 	error:


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /