]> granicus.if.org Git - python/commitdiff
Try to fix the problem of passing a non-int on Win64 right this time.
authorNeal Norwitz <nnorwitz@gmail.com>
Fri, 31 Aug 2007 05:20:36 +0000 (05:20 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Fri, 31 Aug 2007 05:20:36 +0000 (05:20 +0000)
Python/getargs.c

index ac85a6d0de308ef25570eca308cdb3dcf05b38eb..f11649adeeb51c5ee81e7a74783900d09a4b3b4b 100644 (file)
@@ -665,11 +665,14 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
        case 'n': /* Py_ssize_t */
 #if SIZEOF_SIZE_T != SIZEOF_LONG
        {
+               PyObject *iobj;
                Py_ssize_t *p = va_arg(*p_va, Py_ssize_t *);
-               Py_ssize_t ival;
+               Py_ssize_t ival = -1;
                if (float_argument_error(arg))
                        return converterr("integer<n>", arg, msgbuf, bufsize);
-               ival = PyNumber_AsSsize_t(arg);
+               iobj = PyNumber_Index(arg);
+               if (iobj != NULL)
+                       ival = PyNumber_AsSsize_t(arg);
                if (ival == -1 && PyErr_Occurred())
                        return converterr("integer<n>", arg, msgbuf, bufsize);
                *p = ival;