18 package com.microsoft.z3;
20 import java.lang.ref.PhantomReference;
21 import java.lang.ref.Reference;
22 import java.lang.ref.ReferenceQueue;
23 import java.util.IdentityHashMap;
40 private final ReferenceQueue<T> referenceQueue =
new ReferenceQueue<>();
41 private final Map<PhantomReference<T>, Long> referenceMap =
42 new IdentityHashMap<>();
57 PhantomReference<T> ref =
new PhantomReference<>(obj, referenceQueue);
58 referenceMap.put(ref, obj.getNativeObject());
67 Reference<? extends T> ref;
68 while ((ref = referenceQueue.poll()) !=
null) {
69 long z3ast = referenceMap.remove(ref);
79 for (
long ref : referenceMap.values()) {