@Override
	public synchronized boolean addAll(Collection<? extends T> c) {
		// only make one copy for the entire set of changes instead of for each change, as calling
		// add() would do
		boolean changed = false;
		WeakHashMap<T, T> newStorage = new WeakHashMap<>(weakHashStorage);
		for (T t : c) {
			changed |= !newStorage.containsKey(t);
			newStorage.put(t, null);
		}
		weakHashStorage = newStorage;
		return changed;
	}
Adds all items to this set.
<p>
Note: calling this method will only result in one copy operation.  If {@link #add(Object)}
were called instead for each item of the iterator, then each call would copy this set.

@param c the items
Ghidra/Framework/Generic/src/main/java/ghidra/util/datastruct/CopyOnWriteWeakSet.java