def referrers(self, X):

	X = self.nodeset_adapt(X)
	if self.is_rg_update_all and self.root is self.heapyc.RootState:
	    if not (self.rg.domain_covers(X) or
		    self.rg.domain_covers(X - self.norefer)):
		# print 'new update old len = %d'%len(self.rg)
		# print self.idset(X-self.rg.get_domain())
		self.rg.clear()
		import gc
		gc.collect()
		self.hv.update_referrers_completely(self.rg)
		addnoref = X - self.rg.get_domain()
		#print 'done 1', len(X), len(addnoref)
		self.norefer |= addnoref
		#print 'done 1a', len(self.rg)
	else:
            # print 'X', X, len(X)
            # print self.idset(X)
	    Y = self.mutnodeset(X)
	    Y -= self.norefer
	    if not self.rg.domain_covers(Y):
		for wt in self.referrers_targets:
		    t = wt()
		    if t is not None:
			Y |= t.set.nodes
		if 0:
		    print 'old update'
		    print self.idset(Y - self.rg.get_domain())
		Y |= self.rg.get_domain()
		self.rg.clear()
		self.hv.update_referrers(self.rg, Y)
		self.norefer.clear()
		self.norefer |= (X | Y | self.rg.get_range())
		self.norefer -= self.rg.get_domain()
                Y = self.mutnodeset(X) - self.norefer
                if not self.rg.domain_covers(Y):
                    print 'update_referrers failed' 
                    print 'Y - domain of rg:'
                    print self.idset(Y - self.rg.get_domain())
                    from pdb import pm, set_trace
                    set_trace()
                        
		Y = None

	X = self.rg.relimg(X)
	X = self.immnodeset(X) - [None]
	X = self.retset(X)
	return X
Returns a set of ints from a string of numbers or ranges separated by sep.
dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/guppy-0.1.10/guppy/heapy/View.py/_GLUECLAMP_.referrers--crossover with--dataset/ETHPy150Open googlei18n/nototools/nototools/tool_utils.py/parse_int_ranges