src/hotspot/share/memory/heapShared.cpp
changeset 51371 3ab8b84e93cd
parent 50951 b96466cdfc45
child 51388 0dcd27526967
equal deleted inserted replaced
51370:fbb62267e5e9 51371:3ab8b84e93cd
   102     _subgraph_object_klasses =
   102     _subgraph_object_klasses =
   103       new(ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(50, true);
   103       new(ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(50, true);
   104   }
   104   }
   105 
   105 
   106   assert(relocated_k->is_shared(), "must be a shared class");
   106   assert(relocated_k->is_shared(), "must be a shared class");
       
   107 
       
   108   if (_k == relocated_k) {
       
   109     // Don't add the Klass containing the sub-graph to it's own klass
       
   110     // initialization list.
       
   111     return;
       
   112   }
       
   113 
   107   if (relocated_k->is_instance_klass()) {
   114   if (relocated_k->is_instance_klass()) {
   108     assert(InstanceKlass::cast(relocated_k)->is_shared_boot_class(),
   115     assert(InstanceKlass::cast(relocated_k)->is_shared_boot_class(),
   109           "must be boot class");
   116           "must be boot class");
   110     // SystemDictionary::xxx_klass() are not updated, need to check
   117     // SystemDictionary::xxx_klass() are not updated, need to check
   111     // the original Klass*
   118     // the original Klass*
   496 }
   503 }
   497 
   504 
   498 #define do_module_object_graph(archive_object_graph_do) \
   505 #define do_module_object_graph(archive_object_graph_do) \
   499   archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedSystemModules_offset(), T_OBJECT, CHECK); \
   506   archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedSystemModules_offset(), T_OBJECT, CHECK); \
   500   archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedModuleFinder_offset(), T_OBJECT, CHECK); \
   507   archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedModuleFinder_offset(), T_OBJECT, CHECK); \
   501   archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedMainModule_offset(), T_OBJECT, CHECK)
   508   archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedMainModule_offset(), T_OBJECT, CHECK); \
       
   509   archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedConfiguration_offset(), T_OBJECT, CHECK); \
       
   510   archive_object_graph_do(SystemDictionary::ImmutableCollections_ListN_klass(), java_util_ImmutableCollections_ListN::EMPTY_LIST_offset(), T_OBJECT, CHECK); \
       
   511   archive_object_graph_do(SystemDictionary::ImmutableCollections_MapN_klass(),  java_util_ImmutableCollections_MapN::EMPTY_MAP_offset(), T_OBJECT, CHECK); \
       
   512   archive_object_graph_do(SystemDictionary::ImmutableCollections_SetN_klass(),  java_util_ImmutableCollections_SetN::EMPTY_SET_offset(), T_OBJECT, CHECK); \
       
   513   archive_object_graph_do(SystemDictionary::Configuration_klass(),       java_lang_module_Configuration::EMPTY_CONFIGURATION_offset(), T_OBJECT, CHECK)
   502 
   514 
   503 void HeapShared::archive_module_graph_objects(Thread* THREAD) {
   515 void HeapShared::archive_module_graph_objects(Thread* THREAD) {
   504   do_module_object_graph(archive_reachable_objects_from_static_field);
   516   do_module_object_graph(archive_reachable_objects_from_static_field);
   505 }
   517 }
   506 #endif // INCLUDE_CDS_JAVA_HEAP
   518 #endif // INCLUDE_CDS_JAVA_HEAP