On Thu, Oct 25, 2012 at 4:38 AM, alex_gaynor <nore...@buildbot.pypy.org> wrote: > Author: Alex Gaynor <alex.gay...@gmail.com> > Branch: > Changeset: r58413:88158af0627f > Date: 2012-10-24 19:38 -0700 > http://bitbucket.org/pypy/pypy/changeset/88158af0627f/ > > Log: fix jit translation, don't lookinside this function until ptradd > works with things besides ccharp
We can use raw_load and raw_store (from pypy.rlib.rawstorage) that can be understood by the JIT. making ptradd understood is also not a big deal. > > diff --git a/pypy/module/array/interp_array.py > b/pypy/module/array/interp_array.py > --- a/pypy/module/array/interp_array.py > +++ b/pypy/module/array/interp_array.py > @@ -9,6 +9,7 @@ > from pypy.objspace.std.multimethod import FailedToImplement > from pypy.objspace.std.stdtypedef import SMM, StdTypeDef > from pypy.objspace.std.register_all import register_all > +from pypy.rlib import jit > from pypy.rlib.rarithmetic import ovfcheck, widen > from pypy.rlib.unroll import unrolling_iterable > from pypy.rlib.objectmodel import specialize, keepalive_until_here > @@ -466,6 +467,7 @@ > self.setlen(0) > self.fromsequence(w_lst) > > + @jit.dont_look_inside > def delslice__Array_ANY_ANY(space, self, w_i, w_j): > i = space.int_w(w_i) > if i < 0: > @@ -495,13 +497,13 @@ > rffi.c_memcpy( > rffi.cast(rffi.VOIDP, rffi.ptradd(self.buffer, i)), > rffi.cast(rffi.VOIDP, rffi.ptradd(oldbuffer, j)), > - (self.len - j) * mytype.bytes) > + (self.len - j) * mytype.bytes > + ) > self.len -= j - i > self.allocated = self.len > if oldbuffer: > lltype.free(oldbuffer, flavor='raw') > > - > # Add and mul methods > > def add__Array_Array(space, self, other): > _______________________________________________ > pypy-commit mailing list > pypy-com...@python.org > http://mail.python.org/mailman/listinfo/pypy-commit _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev