[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