[Python-checkins] r70795 - python/branches/py3k-short-float-repr/Objects/floatobject.c

eric.smith python-checkins at python.org
Tue Mar 31 05:52:44 CEST 2009


Author: eric.smith
Date: Tue Mar 31 05:52:44 2009
New Revision: 70795

Log:
More work on removed PREC_STR. Now only _PyFloat_Repr() (used by marshal) remains. It too will be removed eventually.

Modified:
   python/branches/py3k-short-float-repr/Objects/floatobject.c

Modified: python/branches/py3k-short-float-repr/Objects/floatobject.c
==============================================================================
--- python/branches/py3k-short-float-repr/Objects/floatobject.c	(original)
+++ python/branches/py3k-short-float-repr/Objects/floatobject.c	Tue Mar 31 05:52:44 2009
@@ -444,8 +444,7 @@
 static PyObject *
 float_repr(PyFloatObject *v)
 {
-    /* XXX change PREC_REPR to 0 when mode is supported */
-    return float_str_or_repr(v, 0, PREC_REPR);
+    return float_str_or_repr(v, 0, 0);
 }
 
 static PyObject *
@@ -1980,17 +1979,21 @@
 			     i++, p++) {
 				if (PyFloat_CheckExact(p) &&
 				    Py_REFCNT(p) != 0) {
-					char buf[100];
-					format_double(buf, sizeof(buf),
-                                                      PyFloat_AS_DOUBLE(p),
-                                                      PREC_STR);
-					/* XXX(twouters) cast refcount to
-					   long until %zd is universally
-					   available
-					 */
-					fprintf(stderr,
+					char *buf = PyOS_double_to_string(
+						PyFloat_AS_DOUBLE(p), 0, 'g',
+						0, 0, 1);
+					if (buf) {
+						/* XXX(twouters) cast
+						   refcount to long
+						   until %zd is
+						   universally
+						   available
+						*/
+						fprintf(stderr,
 			     "#   <float at %p, refcnt=%ld, val=%s>\n",
 						p, (long)Py_REFCNT(p), buf);
+						PyMem_Free(buf);
+					}
 				}
 			}
 			list = list->next;


More information about the Python-checkins mailing list