Author: Wim Lavrijsen <[email protected]>
Branch: cling-support
Changeset: r89049:e04b47226aa3
Date: 2016-12-13 10:52 -0800
http://bitbucket.org/pypy/pypy/changeset/e04b47226aa3/
Log: downgrade long double to double as annotator support is not there
diff --git a/pypy/module/cppyy/converter.py b/pypy/module/cppyy/converter.py
--- a/pypy/module/cppyy/converter.py
+++ b/pypy/module/cppyy/converter.py
@@ -386,7 +386,9 @@
fval = float(rfloat.rstring_to_float(default))
else:
fval = float(0.)
- self.default = r_longfloat(fval)
+ # see ffitypes.LongDoubleTypeMixin: long double not really
+ # supported in rffi
+ self.default = fval #r_longfloat(fval)
def from_memory(self, space, w_obj, w_pycppclass, offset):
address = self._get_raw_address(space, w_obj, offset)
diff --git a/pypy/module/cppyy/ffitypes.py b/pypy/module/cppyy/ffitypes.py
--- a/pypy/module/cppyy/ffitypes.py
+++ b/pypy/module/cppyy/ffitypes.py
@@ -1,7 +1,7 @@
from pypy.interpreter.error import oefmt
from rpython.rtyper.lltypesystem import rffi
-from rpython.rlib.rarithmetic import r_singlefloat
+from rpython.rlib.rarithmetic import r_singlefloat, r_longfloat
from pypy.module._cffi_backend import newtype
@@ -239,21 +239,25 @@
_mixin_ = True
_immutable_fields_ = ['c_type', 'c_ptrtype', 'typecode']
- c_type = rffi.LONGDOUBLE
- c_ptrtype = rffi.LONGDOUBLEP
+ # long double is not really supported, so work with normal
+ # double instead; doing it here keeps this localized
+ c_type = rffi.DOUBLE #rffi.LONGDOUBLE
+ c_ptrtype = rffi.DOUBLEP #rffi.LONGDOUBLEP
typecode = 'g'
def _unwrap_object(self, space, w_obj):
- return space.float_w(w_obj)
+ #return r_longfloat(space.float_w(w_obj))
+ return float(space.float_w(w_obj))
def _wrap_object(self, space, obj):
- # long double not really supported, so force a cast to double
+ # return space.wrap(obj)
dbl = rffi.cast(rffi.DOUBLE, obj)
return space.wrap(float(dbl))
def cffi_type(self, space):
state = space.fromcache(State)
- return state.c_ldouble
+ #return state.c_ldouble
+ return state.c_double
def typeid(c_type):
"NOT_RPYTHON"
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit