< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIMetaAccessContext.java

Print this page

        

@@ -133,10 +133,11 @@
             /*
              * The list enlarged so update the head.
              */
             metadataRoots = list.getHead();
         }
+        assert isRegistered(metaspaceObject);
     }
 
     protected ResolvedJavaType createClass(Class<?> javaClass) {
         if (javaClass.isPrimitive()) {
             JavaKind kind = JavaKind.fromJavaClass(javaClass);

@@ -206,11 +207,11 @@
         class ChunkIterator<V> implements Iterator<V> {
 
             ChunkIterator() {
                 currentChunk = head;
                 currentIndex = -1;
-                findNext();
+                next = findNext();
             }
 
             Object[] currentChunk;
             int currentIndex;
             V next;

@@ -243,6 +244,15 @@
             }
 
         }
 
     }
+
+    synchronized boolean isRegistered(MetaspaceWrapperObject wrapper) {
+        for (WeakReference<MetaspaceWrapperObject> m : list) {
+            if (m != null && m.get() == wrapper) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
< prev index next >