< prev index next >

src/hotspot/share/memory/heapShared.cpp

Print this page

        

*** 102,111 **** --- 102,118 ---- _subgraph_object_klasses = new(ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(50, true); } assert(relocated_k->is_shared(), "must be a shared class"); + + if (_k == relocated_k) { + // Don't add the Klass containing the sub-graph to it's own klass + // initialization list. + return; + } + if (relocated_k->is_instance_klass()) { assert(InstanceKlass::cast(relocated_k)->is_shared_boot_class(), "must be boot class"); // SystemDictionary::xxx_klass() are not updated, need to check // the original Klass*
*** 496,506 **** } #define do_module_object_graph(archive_object_graph_do) \ archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedSystemModules_offset(), T_OBJECT, CHECK); \ archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedModuleFinder_offset(), T_OBJECT, CHECK); \ ! archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedMainModule_offset(), T_OBJECT, CHECK) void HeapShared::archive_module_graph_objects(Thread* THREAD) { do_module_object_graph(archive_reachable_objects_from_static_field); } #endif // INCLUDE_CDS_JAVA_HEAP --- 503,518 ---- } #define do_module_object_graph(archive_object_graph_do) \ archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedSystemModules_offset(), T_OBJECT, CHECK); \ archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedModuleFinder_offset(), T_OBJECT, CHECK); \ ! archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedMainModule_offset(), T_OBJECT, CHECK); \ ! archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedConfiguration_offset(), T_OBJECT, CHECK); \ ! archive_object_graph_do(SystemDictionary::ImmutableCollections_ListN_klass(), java_util_ImmutableCollections_ListN::EMPTY_LIST_offset(), T_OBJECT, CHECK); \ ! archive_object_graph_do(SystemDictionary::ImmutableCollections_MapN_klass(), java_util_ImmutableCollections_MapN::EMPTY_MAP_offset(), T_OBJECT, CHECK); \ ! archive_object_graph_do(SystemDictionary::ImmutableCollections_SetN_klass(), java_util_ImmutableCollections_SetN::EMPTY_SET_offset(), T_OBJECT, CHECK); \ ! archive_object_graph_do(SystemDictionary::Configuration_klass(), java_lang_module_Configuration::EMPTY_CONFIGURATION_offset(), T_OBJECT, CHECK) void HeapShared::archive_module_graph_objects(Thread* THREAD) { do_module_object_graph(archive_reachable_objects_from_static_field); } #endif // INCLUDE_CDS_JAVA_HEAP
< prev index next >