@Override
	public V put(K key, V value) {
		processQueue();
		WeakValue<V> v = hash.get(key);
		V oldValue = null;
		if (v != null) {
			reverseHash.remove(v);
			oldValue = v.get();
		}
		v = WeakValue.create(value, queue);
		reverseHash.put(v, key);
		hash.put(key, v);
		return oldValue;
	}
Updates this map so that the given <code>key</code> maps to the given
<code>value</code>.  If the map previously contained a mapping for
<code>key</code> then that mapping is replaced and the previous value is
returned.

@param  key    The key that is to be mapped to the given
               <code>value</code> 
@param  value  The value to which the given <code>key</code> is to be
               mapped

@return  The previous value to which this key was mapped, or
         <code>null</code> if there was no mapping for the key
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/utils/WeakHashMap2.java