[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