106 Commits

Author SHA1 Message Date
Miss Islington (bot)
ec4d099b9f bpo-34649: Add missing NULL checks to _encoded_const() (GH-9225)
Reported by Svace static analyzer.
(cherry picked from commit 6f82bffd2d)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
2018-09-13 00:46:40 +03:00
Serhiy Storchaka
cfa797c068 bpo-24641: Improved error message for JSON unserializible keys. (#4364)
Also updated an example for default() in the module docstring.
Removed quotes around type name in other error messages.
2017-11-25 17:38:20 +02:00
Oren Milman
2b382dd612 bpo-31505: Fix an assertion failure in json, in case _json.make_encoder() received a bad encoder() argument. (#3643) 2017-09-24 12:07:12 +03:00
Eric Snow
fc1bf872e9 bpo-30860: Move windows.h include out of internal/*.h. (#3458)
PR #3397 introduced a large number of warnings to the Windows build. This patch fixes them.
2017-09-11 18:30:43 -07:00
Eric Snow
2ebc5ce42a bpo-30860: Consolidate stateful runtime globals. (#3397)
* group the (stateful) runtime globals into various topical structs
* consolidate the topical structs under a single top-level _PyRuntimeState struct
* add a check-c-globals.py script that helps identify runtime globals

Other globals are excluded (see globals.txt and check-c-globals.py).
2017-09-07 23:51:28 -06:00
INADA Naoki
a6296d34a4 bpo-31095: fix potential crash during GC (GH-2974) 2017-08-24 14:55:17 +09:00
Serhiy Storchaka
49f6449ef4 bpo-30936: Fix a reference leak in json when fail to sort keys. (#2712) 2017-07-16 07:29:16 +03:00
Segev Finer
541bd28941 bpo-30911: Fix a crash in json on platforms with unsigned char (#2684)
when pass bad strict argument.
2017-07-13 08:52:08 +03:00
Serhiy Storchaka
ac5bbd43bc bpo-30248: Convert boolean arguments only once in _json. (#1423)
Rather than saving the Python object and calling PyObject_IsTrue()
every time when the boolean argument is used, call it only once and
save C boolean value.
2017-05-28 15:31:49 +03:00
Serhiy Storchaka
76a3e51a40 bpo-30243: Fixed the possibility of a crash in _json. (#1420)
It was possible to get a core dump by using uninitialized
_json objects. Now __new__ methods create initialized objects.
__init__ methods are removed.
2017-05-05 10:08:49 +03:00
Serhiy Storchaka
fff9a31a91 bpo-29865: Use PyXXX_GET_SIZE macros rather than Py_SIZE for concrete types. (#748) 2017-03-21 08:53:25 +02:00
Serhiy Storchaka
d1302c0154 Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever
possible but Coccinelle couldn't find opportunity.
2017-01-23 10:23:58 +02:00
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