[Python-checkins] cpython (2.7): Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not

victor.stinner python-checkins at python.org
Tue May 3 15:08:12 CEST 2011


http://hg.python.org/cpython/rev/509f1c15a1e1
changeset: 69798:509f1c15a1e1
branch: 2.7
parent: 69796:618c3e971e80
user: Victor Stinner <victor.stinner at haypocalc.com>
date: Tue May 03 15:06:11 2011 +0200
summary:
 Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not
written if PY_SSIZE_T_CLEAN is defined.
files:
 Misc/NEWS | 3 +++
 Python/getargs.c | 9 +++++----
 2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -9,6 +9,9 @@
 Core and Builtins
 -----------------
 
+- Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not
+ written if PY_SSIZE_T_CLEAN is defined.
+
 - Issue #9756: When calling a method descriptor or a slot wrapper descriptor,
 the check of the object type doesn't read the __class__ attribute anymore.
 Fix a crash if a class override its __class__ attribute (e.g. a proxy of the
diff --git a/Python/getargs.c b/Python/getargs.c
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -984,10 +984,11 @@
 if (*format == '#') {
 FETCH_SIZE;
 assert(0); /* XXX redundant with if-case */
- if (arg == Py_None)
- *q = 0;
- else
- *q = PyString_Size(arg);
+ if (arg == Py_None) {
+ STORE_SIZE(0);
+ } else {
+ STORE_SIZE(PyString_Size(arg));
+ }
 format++;
 }
 else if (*p != NULL &&
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

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