< prev index next >

src/hotspot/share/classfile/placeholders.cpp

Print this page

        

@@ -43,10 +43,11 @@
   entry->set_havesupername(havesupername);
   entry->set_supername(supername);
   entry->set_superThreadQ(NULL);
   entry->set_loadInstanceThreadQ(NULL);
   entry->set_defineThreadQ(NULL);
+  entry->set_flattenableFieldQ(NULL);
   entry->set_definer(NULL);
   entry->set_instance_klass(NULL);
   return entry;
 }
 

@@ -164,11 +165,12 @@
     PlaceholderEntry *probe = get_entry(index, hash, name, loader_data);
     if (probe != NULL) {
        probe->remove_seen_thread(thread, action);
        // If no other threads using this entry, and this thread is not using this entry for other states
        if ((probe->superThreadQ() == NULL) && (probe->loadInstanceThreadQ() == NULL)
-          && (probe->defineThreadQ() == NULL) && (probe->definer() == NULL)) {
+          && (probe->defineThreadQ() == NULL) && (probe->definer() == NULL)
+          && (probe->flattenableFieldQ() == NULL)) {
          remove_entry(index, hash, name, loader_data);
        }
     }
   }
 

@@ -219,10 +221,13 @@
   superThreadQ()->print_action_queue(st);
   st->cr();
   st->print("defineThreadQ threads:");
   defineThreadQ()->print_action_queue(st);
   st->cr();
+  st->print("flattenableFieldQ threads:");
+  flattenableFieldQ()->print_action_queue(st);
+  st->cr();
 }
 
 void PlaceholderTable::print_on(outputStream* st) const {
   st->print_cr("Placeholder table (table_size=%d, placeholders=%d)",
                 table_size(), number_of_entries());
< prev index next >