[pypy-commit] pypy cffi-1.0: JIT fixes

arigo noreply at buildbot.pypy.org
Fri May 8 19:05:20 CEST 2015


Author: Armin Rigo <arigo at tunes.org>
Branch: cffi-1.0
Changeset: r77232:b878318b35ce
Date: 2015-05-08 19:03 +0200
http://bitbucket.org/pypy/pypy/changeset/b878318b35ce/

Log:	JIT fixes

diff --git a/pypy/module/_cffi_backend/ffi_obj.py b/pypy/module/_cffi_backend/ffi_obj.py
--- a/pypy/module/_cffi_backend/ffi_obj.py
+++ b/pypy/module/_cffi_backend/ffi_obj.py
@@ -265,7 +265,7 @@
 the cdata object returned by new_handle()!"""
         #
         space = self.space
-        return handle._newp_handle(space, newtype.new_voidp_type(space), w_arg)
+        return handle._newp_handle(space, newtype._new_voidp_type(space), w_arg)
 
 
     def _more_offsetof(self, w_ctype, w_arg0, args_w):
@@ -345,7 +345,7 @@
     return space.wrap(r)
 
 def make_NULL(space):
-    ctvoidp = newtype.new_voidp_type(space)
+    ctvoidp = newtype._new_voidp_type(space)
     w_NULL = ctvoidp.cast(space.wrap(0))
     return w_NULL
 
diff --git a/pypy/module/_cffi_backend/newtype.py b/pypy/module/_cffi_backend/newtype.py
--- a/pypy/module/_cffi_backend/newtype.py
+++ b/pypy/module/_cffi_backend/newtype.py
@@ -140,9 +140,12 @@
     eptypesize("int_fast64_t",  8, _WCTSigned)
     eptypesize("uint_fast64_t", 8, _WCTUnsign)
 
- at jit.elidable
 @unwrap_spec(name=str)
 def new_primitive_type(space, name):
+    return _new_primitive_type(space, name)
+
+ at jit.elidable
+def _new_primitive_type(space, name):
     unique_cache = space.fromcache(UniqueCache)
     try:
         return unique_cache.primitives[name]
@@ -158,9 +161,12 @@
 
 # ____________________________________________________________
 
- at jit.elidable
 @unwrap_spec(w_ctype=ctypeobj.W_CType)
 def new_pointer_type(space, w_ctype):
+    return _new_pointer_type(space, w_ctype)
+
+ at jit.elidable
+def _new_pointer_type(space, w_ctype):
     unique_cache = space.fromcache(UniqueCache)
     try:
         return unique_cache.pointers[w_ctype]
@@ -172,7 +178,6 @@
 
 # ____________________________________________________________
 
- at jit.elidable
 @unwrap_spec(w_ctptr=ctypeobj.W_CType)
 def new_array_type(space, w_ctptr, w_length):
     if space.is_w(w_length, space.w_None):
@@ -526,15 +531,18 @@
 
 # ____________________________________________________________
 
+def new_void_type(space):
+    return _new_void_type(space)
+
 @jit.elidable
-def new_void_type(space):
+def _new_void_type(space):
     unique_cache = space.fromcache(UniqueCache)
     if unique_cache.ctvoid is None:
         unique_cache.ctvoid = ctypevoid.W_CTypeVoid(space)
     return unique_cache.ctvoid
 
 @jit.elidable
-def new_voidp_type(space):
+def _new_voidp_type(space):
     unique_cache = space.fromcache(UniqueCache)
     if unique_cache.ctvoidp is None:
         unique_cache.ctvoidp = new_pointer_type(space, new_void_type(space))
@@ -578,7 +586,6 @@
 
 # ____________________________________________________________
 
- at jit.elidable
 @unwrap_spec(w_fresult=ctypeobj.W_CType, ellipsis=int)
 def new_function_type(space, w_fargs, w_fresult, ellipsis=0):
     fargs = []


More information about the pypy-commit mailing list