From c8a0d2f368401adefcf39c672c74e2cfee1c32b0 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Tue, 6 May 2008 16:18:41 +0000 Subject: Intern static string Use float constructors instead of magic code for float constants --- Lib/json/decoder.py | 12 +----------- Modules/_json.c | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py index acaee25..e80b935 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 deee1e3..ea6d66f 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; -- cgit v0.12