Intern static string

Use float constructors instead of magic code for float constants
This commit is contained in:
Christian Heimes 2008-05-06 16:18:41 +00:00
parent 8e4997390c
commit c8a0d2f368
2 changed files with 2 additions and 12 deletions

View File

@ -14,17 +14,7 @@ __all__ = ['JSONDecoder']
FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL
NaN, PosInf, NegInf = float('nan'), float('inf'), float('-inf')
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()
def linecol(doc, pos): def linecol(doc, pos):

View File

@ -215,7 +215,7 @@ join_list_unicode(PyObject *lst)
ustr = PyUnicode_FromUnicode(&c, 0); ustr = PyUnicode_FromUnicode(&c, 0);
} }
if (joinstr == NULL) { if (joinstr == NULL) {
joinstr = PyString_FromString("join"); joinstr = PyString_InternFromString("join");
} }
if (joinstr == NULL || ustr == NULL) { if (joinstr == NULL || ustr == NULL) {
return NULL; return NULL;