diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py index acaee251f36..e80b93541b7 100644 --- a/Lib/json/decoder.py +++ b/Lib/json/decoder.py @@ -14,17 +14,7 @@ __all__ = ['JSONDecoder'] FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL - -def _floatconstants(): - import struct - import sys - _BYTES = '7FF80000000000007FF0000000000000'.decode('hex') - if sys.byteorder != 'big': - _BYTES = _BYTES[:8][::-1] + _BYTES[8:][::-1] - nan, inf = struct.unpack('dd', _BYTES) - return nan, inf, -inf - -NaN, PosInf, NegInf = _floatconstants() +NaN, PosInf, NegInf = float('nan'), float('inf'), float('-inf') def linecol(doc, pos): diff --git a/Modules/_json.c b/Modules/_json.c index deee1e3d7a9..ea6d66f60ca 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -215,7 +215,7 @@ join_list_unicode(PyObject *lst) ustr = PyUnicode_FromUnicode(&c, 0); } if (joinstr == NULL) { - joinstr = PyString_FromString("join"); + joinstr = PyString_InternFromString("join"); } if (joinstr == NULL || ustr == NULL) { return NULL;