[pypy-svn] r72461 - in pypy/trunk/pypy/module/cpyext: . include test

jandem at codespeak.net jandem at codespeak.net
Sat Mar 20 18:20:52 CET 2010


Author: jandem
Date: Sat Mar 20 18:20:50 2010
New Revision: 72461

Modified:
   pypy/trunk/pypy/module/cpyext/floatobject.py
   pypy/trunk/pypy/module/cpyext/include/floatobject.h
   pypy/trunk/pypy/module/cpyext/test/test_floatobject.py
Log:
fix PyFloat_AsDouble


Modified: pypy/trunk/pypy/module/cpyext/floatobject.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/floatobject.py	(original)
+++ pypy/trunk/pypy/module/cpyext/floatobject.py	Sat Mar 20 18:20:50 2010
@@ -6,5 +6,5 @@
     return space.wrap(value)
 
 @cpython_api([PyObject], lltype.Float)
-def PyFloat_AsDouble(space, w_float):
-    return 10.0 #XXX: for now
+def PyFloat_AsDouble(space, w_obj):
+    return space.float_w(space.float(w_obj))

Modified: pypy/trunk/pypy/module/cpyext/include/floatobject.h
==============================================================================
--- pypy/trunk/pypy/module/cpyext/include/floatobject.h	(original)
+++ pypy/trunk/pypy/module/cpyext/include/floatobject.h	Sat Mar 20 18:20:50 2010
@@ -7,9 +7,8 @@
 extern "C" {
 #endif
 
-
 PyObject* PyFloat_FromDouble(double);
-//double PyFloat_AsDouble(PyObject*);
+double PyFloat_AsDouble(PyObject*);
 
 #ifdef __cplusplus
 }

Modified: pypy/trunk/pypy/module/cpyext/test/test_floatobject.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/test/test_floatobject.py	(original)
+++ pypy/trunk/pypy/module/cpyext/test/test_floatobject.py	Sat Mar 20 18:20:50 2010
@@ -11,15 +11,15 @@
             Py_InitModule("foo", methods);
         """
         body = """
-        PyObject* foo_FromDouble(PyObject* self, PyObject *args)
+        static PyObject* foo_FromDouble(PyObject* self, PyObject *args)
         {
             return PyFloat_FromDouble(3.14);
         }
-        PyObject* foo_AsDouble(PyObject* self, PyObject *args)
+        static PyObject* foo_AsDouble(PyObject* self, PyObject *args)
         {
-            PyObject* pi = PyFloat_FromDouble(3.14);
-            double d = PyFloat_AsDouble(pi);
-			return PyFloat_FromDouble(d);
+            PyObject* obj = PyFloat_FromDouble(23.45);
+            double d = PyFloat_AsDouble(obj);
+            return PyFloat_FromDouble(d);
         }
         static PyMethodDef methods[] = {
             { "FromDouble", foo_FromDouble, METH_NOARGS },
@@ -30,4 +30,4 @@
         module = self.import_module(name='foo', init=init, body=body)
         assert 'foo' in sys.modules
         assert module.FromDouble() == 3.14
-        assert module.AsDouble() == 3.14
+        assert module.AsDouble() == 23.45



More information about the Pypy-commit mailing list