]> granicus.if.org Git - python/commitdiff
merge 3.2
authorBenjamin Peterson <benjamin@python.org>
Mon, 14 Apr 2014 15:46:51 +0000 (11:46 -0400)
committerBenjamin Peterson <benjamin@python.org>
Mon, 14 Apr 2014 15:46:51 +0000 (11:46 -0400)
1  2 
Modules/_json.c

diff --cc Modules/_json.c
index ec980c93fa1ee478335990c6196001dbeb76cdcf,4d0f3c473afd3c4f013c4410c519cde0b3ac7d3f..4bc585dc2ab0d610b8019126e7df388838f9ade2
@@@ -964,21 -928,13 +964,22 @@@ scan_once_unicode(PyScannerObject *s, P
      Returns a new PyObject representation of the term.
      */
      PyObject *res;
 -    Py_UNICODE *str = PyUnicode_AS_UNICODE(pystr);
 -    Py_ssize_t length = PyUnicode_GET_SIZE(pystr);
 +    void *str;
 +    int kind;
 +    Py_ssize_t length;
 +
 +    if (PyUnicode_READY(pystr) == -1)
 +        return NULL;
 +
 +    str = PyUnicode_DATA(pystr);
 +    kind = PyUnicode_KIND(pystr);
 +    length = PyUnicode_GET_LENGTH(pystr);
 +
-     if (idx < 0)
-         /* Compatibility with Python version. */
-         idx += length;
-     if (idx < 0 || idx >= length) {
+     if (idx < 0) {
 -        PyErr_SetString(PyExc_ValueError, "idx canont be negative");
++        PyErr_SetString(PyExc_ValueError, "idx cannot be negative");
+         return NULL;
+     }
+     if (idx >= length) {
          PyErr_SetNone(PyExc_StopIteration);
          return NULL;
      }