def attach_defaults(self, default_insts, kwdefault_insts): if default_insts: tmp = PyTupleLL(None, self.v) tmp.declare_tmp(name=self.hlnode.owner.name + "_defaults") tmp.pack(*default_insts) self.c_obj.set_attr_string('__defaults__', tmp) tmp.decref() if kwdefault_insts: tmp = PyDictLL(None, self.v) tmp.declare_tmp(name=self.hlnode.owner.name + "_kwdefaults") tmp.new() for name, inst in kwdefault_insts: if inst is None: self.v.none.incref() tmp.set_item_string(name, self.v.none) else: tmp.set_item_string(name, inst) inst.decref() self.c_obj.set_attr_string('__kwdefaults__', tmp) tmp.decref()