def do_setarrayitem_gc(self, arraybox, indexbox, newvaluebox, arraydescr): assert isinstance(arraydescr, Descr) array = arraybox.getref_base() index = indexbox.getint() if arraydescr.typeinfo == REF: newvalue = newvaluebox.getref_base() llimpl.do_setarrayitem_gc_ptr(array, index, newvalue) elif arraydescr.typeinfo == INT: newvalue = newvaluebox.getint() llimpl.do_setarrayitem_gc_int(array, index, newvalue, self.memo_cast) elif arraydescr.typeinfo == FLOAT: newvalue = newvaluebox.getfloat() llimpl.do_setarrayitem_gc_float(array, index, newvalue) else: raise NotImplementedError
def bh_setarrayitem_gc_r(self, arraydescr, array, index, newvalue): assert isinstance(arraydescr, Descr) llimpl.do_setarrayitem_gc_ptr(array, index, newvalue)