def do_setfield_gc(self, structbox, newvaluebox, fielddescr): assert isinstance(fielddescr, Descr) struct = structbox.getref_base() if fielddescr.typeinfo == REF: newvalue = newvaluebox.getref_base() llimpl.do_setfield_gc_ptr(struct, fielddescr.ofs, newvalue) elif fielddescr.typeinfo == INT: newvalue = newvaluebox.getint() llimpl.do_setfield_gc_int(struct, fielddescr.ofs, newvalue, self.memo_cast) elif fielddescr.typeinfo == FLOAT: newvalue = newvaluebox.getfloat() llimpl.do_setfield_gc_float(struct, fielddescr.ofs, newvalue) else: raise NotImplementedError
def bh_setfield_gc_r(self, struct, fielddescr, newvalue): assert isinstance(fielddescr, Descr) llimpl.do_setfield_gc_ptr(struct, fielddescr.ofs, newvalue)