def add_const(self, w_obj): """Add a W_Root to the constant array and return its location.""" space = self.space if isinstance(w_obj, PyCode): # unlike CPython, never share code objects, it's pointless w_key = space.id(w_obj) else: w_key = PyCode.const_comparison_key(self.space, w_obj) w_len = space.finditem(self.w_consts, w_key) if w_len is not None: length = space.int_w(w_len) else: length = len(self.consts_w) w_obj = misc.intern_if_common_string(space, w_obj) self.consts_w.append(w_obj) space.setitem(self.w_consts, w_key, space.newint(length)) if length == 0: self.scope.doc_removable = False return length