diff options
-rw-r--r-- | Python/getargs.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/Python/getargs.c b/Python/getargs.c index a4dc57a..16373d9 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -367,7 +367,8 @@ convertitem(PyObject *arg, char **p_format, va_list *p_va, int *levels, static char * converterr(char *expected, PyObject *arg, char *msgbuf) { - assert (expected != NULL); + assert(expected != NULL); + assert(arg != NULL); sprintf(msgbuf, "must be %.50s, not %.50s", expected, arg == Py_None ? "None" : arg->ob_type->tp_name); return msgbuf; @@ -387,6 +388,7 @@ convertsimple(PyObject *arg, char **p_format, va_list *p_va, char *msgbuf) { char *format = *p_format; char c = *format++; + PyObject *uarg; switch (c) { @@ -568,12 +570,12 @@ convertsimple(PyObject *arg, char **p_format, va_list *p_va, char *msgbuf) } #ifdef Py_USING_UNICODE else if (PyUnicode_Check(arg)) { - arg = UNICODE_DEFAULT_ENCODING(arg); - if (arg == NULL) + uarg = UNICODE_DEFAULT_ENCODING(arg); + if (uarg == NULL) return converterr(CONV_UNICODE, arg, msgbuf); - *p = PyString_AS_STRING(arg); - *q = PyString_GET_SIZE(arg); + *p = PyString_AS_STRING(uarg); + *q = PyString_GET_SIZE(uarg); } #endif else { /* any buffer-like object */ @@ -591,11 +593,11 @@ convertsimple(PyObject *arg, char **p_format, va_list *p_va, char *msgbuf) *p = PyString_AS_STRING(arg); #ifdef Py_USING_UNICODE else if (PyUnicode_Check(arg)) { - arg = UNICODE_DEFAULT_ENCODING(arg); - if (arg == NULL) + uarg = UNICODE_DEFAULT_ENCODING(arg); + if (uarg == NULL) return converterr(CONV_UNICODE, arg, msgbuf); - *p = PyString_AS_STRING(arg); + *p = PyString_AS_STRING(uarg); } #endif else @@ -622,12 +624,12 @@ convertsimple(PyObject *arg, char **p_format, va_list *p_va, char *msgbuf) } #ifdef Py_USING_UNICODE else if (PyUnicode_Check(arg)) { - arg = UNICODE_DEFAULT_ENCODING(arg); - if (arg == NULL) + uarg = UNICODE_DEFAULT_ENCODING(arg); + if (uarg == NULL) return converterr(CONV_UNICODE, arg, msgbuf); - *p = PyString_AS_STRING(arg); - *q = PyString_GET_SIZE(arg); + *p = PyString_AS_STRING(uarg); + *q = PyString_GET_SIZE(uarg); } #endif else { /* any buffer-like object */ @@ -648,11 +650,11 @@ convertsimple(PyObject *arg, char **p_format, va_list *p_va, char *msgbuf) *p = PyString_AsString(arg); #ifdef Py_USING_UNICODE else if (PyUnicode_Check(arg)) { - arg = UNICODE_DEFAULT_ENCODING(arg); - if (arg == NULL) + uarg = UNICODE_DEFAULT_ENCODING(arg); + if (uarg == NULL) return converterr(CONV_UNICODE, arg, msgbuf); - *p = PyString_AS_STRING(arg); + *p = PyString_AS_STRING(uarg); } #endif else |