Author: Armin Rigo <ar...@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) -@jit.elidable @unwrap_spec(name=str) def new_primitive_type(space, name): + return _new_primitive_type(space, name) + +@jit.elidable +def _new_primitive_type(space, name): unique_cache = space.fromcache(UniqueCache) try: return unique_cache.primitives[name] @@ -158,9 +161,12 @@ # ____________________________________________________________ -@jit.elidable @unwrap_spec(w_ctype=ctypeobj.W_CType) def new_pointer_type(space, w_ctype): + return _new_pointer_type(space, w_ctype) + +@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 @@ # ____________________________________________________________ -@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 @@ # ____________________________________________________________ -@jit.elidable @unwrap_spec(w_fresult=ctypeobj.W_CType, ellipsis=int) def new_function_type(space, w_fargs, w_fresult, ellipsis=0): fargs = [] _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit