[pypy-commit] pypy default: Fix for issue reported with pixie (Timothy): if there is no floats at

arigo noreply at buildbot.pypy.org
Sat Oct 25 17:21:01 CEST 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r74226:76cd145da640
Date: 2014-10-25 17:20 +0200
http://bitbucket.org/pypy/pypy/changeset/76cd145da640/

Log:	Fix for issue reported with pixie (Timothy): if there is no floats
	at all, this crashes. Not 100% sure why.

diff --git a/rpython/jit/backend/llsupport/descr.py b/rpython/jit/backend/llsupport/descr.py
--- a/rpython/jit/backend/llsupport/descr.py
+++ b/rpython/jit/backend/llsupport/descr.py
@@ -313,17 +313,18 @@
 # ____________________________________________________________
 # CallDescrs
 
+def _missing_call_stub_i(func, args_i, args_r, args_f):
+    return 0
+def _missing_call_stub_r(func, args_i, args_r, args_f):
+    return lltype.nullptr(llmemory.GCREF.TO)
+def _missing_call_stub_f(func,args_i,args_r,args_f):
+    return longlong.ZEROF
+
 class CallDescr(AbstractDescr):
     arg_classes = ''     # <-- annotation hack
     result_type = '\x00'
     result_flag = '\x00'
     ffi_flags = 1
-    call_stub_i = staticmethod(lambda func, args_i, args_r, args_f:
-                               0)
-    call_stub_r = staticmethod(lambda func, args_i, args_r, args_f:
-                               lltype.nullptr(llmemory.GCREF.TO))
-    call_stub_f = staticmethod(lambda func,args_i,args_r,args_f:
-                               longlong.ZEROF)
 
     def __init__(self, arg_classes, result_type, result_signed, result_size,
                  extrainfo=None, ffi_flags=1):
@@ -340,6 +341,9 @@
         self.result_size = result_size
         self.extrainfo = extrainfo
         self.ffi_flags = ffi_flags
+        self.call_stub_i = _missing_call_stub_i
+        self.call_stub_t = _missing_call_stub_r
+        self.call_stub_f = _missing_call_stub_f
         # NB. the default ffi_flags is 1, meaning FUNCFLAG_CDECL, which
         # makes sense on Windows as it's the one for all the C functions
         # we are compiling together with the JIT.  On non-Windows platforms


More information about the pypy-commit mailing list