tp_obj tp_track(TP,tp_obj v) { if (v.type == TP_STRING) { int i = _tp_dict_find(tp,tp->strings,v); if (i != -1) { tp_delete(tp,v); v = tp->strings->items[i].key; tp_grey(tp,v); return v; } _tp_dict_setx(tp,tp->strings,v,tp_True); } tp_gcinc(tp); tp_grey(tp,v); return v; }
tp_obj tp_track(TP,tp_obj v) { tp_gcinc(tp); tp_grey(tp,v); return v; }