Commit Graph

94 Commits

Author SHA1 Message Date
Serhiy Storchaka
8cbc51ab3d Py_SIZE() was misused for dict. 2017-01-13 08:38:15 +02:00
Serhiy Storchaka
a6758427fd Py_SIZE() was misused for dict. 2017-01-13 08:37:05 +02:00
Serhiy Storchaka
3023ebb43f Py_SIZE() was misused for dict. 2017-01-13 08:34:34 +02:00
Serhiy Storchaka
0f05512104 Fixed possible reference leaks in the _json module. 2017-01-03 11:20:15 +02:00
Serhiy Storchaka
8d979d576e Fixed possible reference leaks in the _json module. 2017-01-03 11:19:48 +02:00
Serhiy Storchaka
21fe721345 Fixed possible reference leaks in the _json module. 2017-01-03 11:17:44 +02:00
Victor Stinner
4c38154a43 Don't parenthesis in _PyObject_CallMethodId() format
Issue #28915: Without parenthesis, _PyObject_CallMethodId() avoids the creation
a temporary tuple, and so is more efficient.
2016-12-09 00:33:39 +01:00
Victor Stinner
de4ae3d486 Backed out changeset b9c9691c72c5
Issue #28858: The change b9c9691c72c5 introduced a regression. It seems like
_PyObject_CallArg1() uses more stack memory than
PyObject_CallFunctionObjArgs().
2016-12-04 22:59:09 +01:00
Victor Stinner
27580c1fb5 Replace PyObject_CallFunctionObjArgs() with fastcall
* PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func)
* PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg)

PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires
extra work to "parse" C arguments to build a C array of PyObject*.

_PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate
memory on the C stack.

This change is part of the fastcall project. The change on listsort() is
related to the issue #23507.
2016-12-01 14:43:22 +01:00
Serhiy Storchaka
96cdbe7bc8 Issue #26719: More efficient formatting of ints and floats in json. 2016-04-10 14:43:04 +03:00
Serhiy Storchaka
e0805cf10e Issue #26719: More efficient formatting of ints and floats in json. 2016-04-10 14:41:19 +03:00
Serhiy Storchaka
ef1585eb9a Issue #25923: Added more const qualifiers to signatures of static and private functions. 2015-12-25 20:01:53 +02:00
Serhiy Storchaka
f002225f7e Issue #24683: Fixed crashes in _json functions called with arguments of
inappropriate type.
2015-07-26 09:02:23 +03:00
Serhiy Storchaka
83236f7a8b Issue #24683: Fixed crashes in _json functions called with arguments of
inappropriate type.
2015-07-26 09:01:22 +03:00
Benjamin Peterson
7b78d4364d prevent integer overflow in escape_unicode (closes #24522) 2015-06-27 15:01:51 -05:00
Serhiy Storchaka
ac5569b1fa Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:48:19 +03:00
Serhiy Storchaka
fa494fd883 Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:45:22 +03:00
Benjamin Peterson
88abdef02b merge 3.4 (#24094) 2015-05-02 22:37:13 -04:00
Benjamin Peterson
122f4b1bda merge 3.3 (#24094) 2015-05-02 22:36:26 -04:00
Benjamin Peterson
501182a47b just sort the items tuple directly (closes #24094) 2015-05-02 22:28:04 -04:00
Victor Stinner
f024d263b4 Issue #23685: Fix usage of PyMODINIT_FUNC in _json, _scproxy, nis, pyexpat
_codecs_cn, _codecs_hk, _codecs_iso2022, _codecs_jp, _codecs_kr and _codecs_tw
modules.

pyexpat.c doesn't need to redeclare PyMODINIT_FUNC, it's already declared in
Include/pyport.h.
2015-03-17 17:48:27 +01:00
Serhiy Storchaka
483405bcca Issue #22883: Got rid of outdated references to PyInt and PyString in comments. 2015-02-17 10:14:30 +02:00
Benjamin Peterson
71cf91cc09 merge 3.4 (#23369) 2015-02-01 18:00:19 -05:00
Benjamin Peterson
3675cd9db1 merge 3.3 (#23369) 2015-02-01 17:59:49 -05:00
Benjamin Peterson
e3bfe19358 fix possible overflow in encode_basestring_ascii (closes #23369) 2015-02-01 17:53:53 -05:00
Serhiy Storchaka
47efb4a5dc Issue #19361: JSON decoder now raises JSONDecodeError instead of ValueError. 2015-01-26 13:16:30 +02:00
Antoine Pitrou
dc3eaa80d4 Issue #23206: Make `json.dumps(..., ensure_ascii=False) as fast as the default case of ensure_ascii=True`. Patch by Naoki Inada. 2015-01-11 16:41:01 +01:00
Victor Stinner
31a3ec313d Issue #22338: Fix a crash in the json module on memory allocation failure. 2014-09-10 23:31:42 +02:00
Benjamin Peterson
70d92a96ab merge 3.3 2014-04-14 11:48:21 -04:00
Benjamin Peterson
9beee049b0 merge 3.2 2014-04-14 11:46:51 -04:00
Benjamin Peterson
6ef2b36afa disallow a negative idx parameter 2014-04-14 11:45:21 -04:00
Benjamin Peterson
584f5cbf16 merge 3.3 2014-04-13 22:31:42 -04:00
Benjamin Peterson
156285c35f merge 3.2 2014-04-13 22:28:16 -04:00
Benjamin Peterson
99b5afab74 in scan_once, prevent the reading of arbitrary memory when passed a negative index
Bug reported by Guido Vranken.
2014-04-13 22:10:38 -04:00
Serhiy Storchaka
687ff0ecdf Issue #11489: JSON decoder now accepts lone surrogates. 2013-11-26 21:27:11 +02:00
Serhiy Storchaka
c93329b3dd Issue #11489: JSON decoder now accepts lone surrogates. 2013-11-26 21:25:28 +02:00
Ethan Furman
a4998a7041 Close #18264: int- and float-derived enums now converted to int or float. 2013-08-10 13:01:45 -07:00
Christian Heimes
75e923fcf2 Issue #16847: Fixed improper use of _PyUnicode_CheckConsistency() in
non-pydebug builds. Several extension modules now compile cleanly when
assert()s are enabled in standard builds (-DDEBUG flag).
2013-01-03 09:22:41 +01:00
Christian Heimes
f402e922f3 Issue #16847: Fixed improper use of _PyUnicode_CheckConsistency() in
non-pydebug builds. Several extension modules now compile cleanly when
assert()s are enabled in standard builds (-DDEBUG flag).
2013-01-03 09:21:55 +01:00
Ezio Melotti
37623ab5f1 #16009: JSON error messages now provide more information. Patch by Serhiy Storchaka. 2013-01-03 08:44:15 +02:00
Antoine Pitrou
cbb028466b Issue #16590: remove obsolete compatibility code from the _json module.
Patch by Serhiy Storchaka.
2012-12-01 19:34:16 +01:00
Antoine Pitrou
53d36b6912 Issue #16228: Fix a crash in the json module where a list changes size while it is being encoded.
Patch by Serhiy Storchaka.
2012-11-01 20:03:30 +01:00
Antoine Pitrou
5ebe65f8cb Issue #16228: Fix a crash in the json module where a list changes size while it is being encoded.
Patch by Serhiy Storchaka.
2012-11-01 19:59:21 +01:00
Antoine Pitrou
9f69e79c45 Issue #16228: Fix a crash in the json module where a list changes size while it is being encoded.
Patch by Serhiy Storchaka.
2012-11-01 19:52:06 +01:00
Victor Stinner
76df43de30 Issue #16330: Use surrogate-related macros
Patch written by Serhiy Storchaka.
2012-10-30 01:42:39 +01:00
Antoine Pitrou
802d669044 Issue #5067: improve some json error messages.
Patch by Serhiy Storchaka.
2012-06-29 01:59:54 +02:00
Antoine Pitrou
2d24e94bbe Issue #5067: improve some json error messages.
Patch by Serhiy Storchaka.
2012-06-29 01:58:26 +02:00
Victor Stinner
8f825060f1 Check newly created consistency using _PyUnicode_CheckConsistency(str, 1)
* In debug mode, fill the string data with invalid characters
 * Simplify also reference counting in PyCodec_BackslashReplaceErrors()
   and PyCodec_XMLCharRefReplaceError()
2012-04-27 13:55:39 +02:00
Antoine Pitrou
d0acb411ef Issue #14387: Do not include accu.h from Python.h. 2012-03-22 14:42:18 +01:00
Victor Stinner
f5cff56a1b Issue #13088: Add shared Py_hexdigits constant to format a number into base 16 2011-10-14 02:13:11 +02:00