Fixed possible reference leaks in the _json module.
This commit is contained in:
commit
0f05512104
|
@ -845,14 +845,16 @@ _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssi
|
||||||
int kind;
|
int kind;
|
||||||
Py_ssize_t end_idx;
|
Py_ssize_t end_idx;
|
||||||
PyObject *val = NULL;
|
PyObject *val = NULL;
|
||||||
PyObject *rval = PyList_New(0);
|
PyObject *rval;
|
||||||
Py_ssize_t next_idx;
|
Py_ssize_t next_idx;
|
||||||
if (rval == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (PyUnicode_READY(pystr) == -1)
|
if (PyUnicode_READY(pystr) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
rval = PyList_New(0);
|
||||||
|
if (rval == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
str = PyUnicode_DATA(pystr);
|
str = PyUnicode_DATA(pystr);
|
||||||
kind = PyUnicode_KIND(pystr);
|
kind = PyUnicode_KIND(pystr);
|
||||||
end_idx = PyUnicode_GET_LENGTH(pystr) - 1;
|
end_idx = PyUnicode_GET_LENGTH(pystr) - 1;
|
||||||
|
@ -1559,8 +1561,11 @@ encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Py_EnterRecursiveCall(" while encoding a JSON object"))
|
if (Py_EnterRecursiveCall(" while encoding a JSON object")) {
|
||||||
|
Py_DECREF(newobj);
|
||||||
|
Py_XDECREF(ident);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
rv = encoder_listencode_obj(s, acc, newobj, indent_level);
|
rv = encoder_listencode_obj(s, acc, newobj, indent_level);
|
||||||
Py_LeaveRecursiveCall();
|
Py_LeaveRecursiveCall();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue