bpo-30877: Fix clearing a cache in the the JSON decoder. (GH-7048)
(cherry picked from commit ae00fb1d4f
)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
93e9fb5664
commit
2baee0aa77
|
@ -68,6 +68,6 @@ def py_make_scanner(context):
|
|||
finally:
|
||||
memo.clear()
|
||||
|
||||
return _scan_once
|
||||
return scan_once
|
||||
|
||||
make_scanner = c_make_scanner or py_make_scanner
|
||||
|
|
|
@ -58,7 +58,9 @@ class TestDecode:
|
|||
def test_keys_reuse(self):
|
||||
s = '[{"a_key": 1, "b_\xe9": 2}, {"a_key": 3, "b_\xe9": 4}]'
|
||||
self.check_keys_reuse(s, self.loads)
|
||||
self.check_keys_reuse(s, self.json.decoder.JSONDecoder().decode)
|
||||
decoder = self.json.decoder.JSONDecoder()
|
||||
self.check_keys_reuse(s, decoder.decode)
|
||||
self.assertFalse(decoder.memo)
|
||||
|
||||
def test_extra_data(self):
|
||||
s = '[1, 2, 3]5'
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
Fixed a bug in the Python implementation of the JSON decoder that prevented
|
||||
the cache of parsed strings from clearing after finishing the decoding.
|
||||
Based on patch by c-fos.
|
Loading…
Reference in New Issue