Mercurial > cpython-lru_cache-weakref
diff Python/marshal.c @ 17707:fe4c1034b480 legacy-trunk
SF bug #422177: Results from .pyc differs from .py
Store floats and doubles to full precision in marshal.
Test that floats read from .pyc/.pyo closely match those read from .py.
Declare PyFloat_AsString() in floatobject header file.
Add new PyFloat_AsReprString() API function.
Document the functions declared in floatobject.h.
| author | Tim Peters <tim.peters@gmail.com> |
|---|---|
| date | Tue, 08 May 2001 15:19:57 +0000 |
| parents | bb75d93f6a31 |
| children | 7bc473b2c654 |
line wrap: on
line diff
--- a/Python/marshal.c Tue May 08 14:20:11 2001 +0000 +++ b/Python/marshal.c Tue May 08 15:19:57 2001 +0000 @@ -149,9 +149,8 @@ w_short(ob->ob_digit[i], p); } else if (PyFloat_Check(v)) { - extern void PyFloat_AsString(char *, PyFloatObject *); char buf[256]; /* Plenty to format any double */ - PyFloat_AsString(buf, (PyFloatObject *)v); + PyFloat_AsReprString(buf, (PyFloatObject *)v); n = strlen(buf); w_byte(TYPE_FLOAT, p); w_byte(n, p); @@ -159,20 +158,19 @@ } #ifndef WITHOUT_COMPLEX else if (PyComplex_Check(v)) { - extern void PyFloat_AsString(char *, PyFloatObject *); char buf[256]; /* Plenty to format any double */ PyFloatObject *temp; w_byte(TYPE_COMPLEX, p); temp = (PyFloatObject*)PyFloat_FromDouble( PyComplex_RealAsDouble(v)); - PyFloat_AsString(buf, temp); + PyFloat_AsReprString(buf, temp); Py_DECREF(temp); n = strlen(buf); w_byte(n, p); w_string(buf, n, p); temp = (PyFloatObject*)PyFloat_FromDouble( PyComplex_ImagAsDouble(v)); - PyFloat_AsString(buf, temp); + PyFloat_AsReprString(buf, temp); Py_DECREF(temp); n = strlen(buf); w_byte(n, p);
