Author: Armin Rigo <[email protected]>
Branch:
Changeset: r79686:3b890eadde77
Date: 2015-09-18 16:03 +0200
http://bitbucket.org/pypy/pypy/changeset/3b890eadde77/
Log: check_correct_type() should also be true in getfield_gc_x.
diff --git a/rpython/jit/backend/llsupport/llmodel.py
b/rpython/jit/backend/llsupport/llmodel.py
--- a/rpython/jit/backend/llsupport/llmodel.py
+++ b/rpython/jit/backend/llsupport/llmodel.py
@@ -600,16 +600,22 @@
@specialize.argtype(1)
def bh_getfield_gc_i(self, struct, fielddescr):
ofs, size, sign = self.unpack_fielddescr_size(fielddescr)
+ if isinstance(lltype.typeOf(struct), lltype.Ptr):
+ fielddescr.check_correct_type(struct)
return self.read_int_at_mem(struct, ofs, size, sign)
@specialize.argtype(1)
def bh_getfield_gc_r(self, struct, fielddescr):
ofs = self.unpack_fielddescr(fielddescr)
+ if isinstance(lltype.typeOf(struct), lltype.Ptr):
+ fielddescr.check_correct_type(struct)
return self.read_ref_at_mem(struct, ofs)
@specialize.argtype(1)
def bh_getfield_gc_f(self, struct, fielddescr):
ofs = self.unpack_fielddescr(fielddescr)
+ if isinstance(lltype.typeOf(struct), lltype.Ptr):
+ fielddescr.check_correct_type(struct)
return self.read_float_at_mem(struct, ofs)
bh_getfield_raw_i = bh_getfield_gc_i
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit