30 #include "classfile/classLoader.hpp"
31 #include "classfile/classLoaderData.inline.hpp"
32 #include "classfile/javaClasses.hpp"
33 #include "classfile/moduleEntry.hpp"
34 #include "classfile/resolutionErrors.hpp"
35 #include "classfile/symbolTable.hpp"
36 #include "classfile/systemDictionary.hpp"
37 #include "classfile/systemDictionaryShared.hpp"
38 #include "classfile/verifier.hpp"
39 #include "classfile/vmSymbols.hpp"
40 #include "code/dependencyContext.hpp"
41 #include "compiler/compileBroker.hpp"
42 #include "gc/shared/collectedHeap.inline.hpp"
43 #include "interpreter/oopMapCache.hpp"
44 #include "interpreter/rewriter.hpp"
45 #include "jvmtifiles/jvmti.h"
46 #include "logging/log.hpp"
47 #include "logging/logMessage.hpp"
48 #include "logging/logStream.hpp"
49 #include "memory/allocation.inline.hpp"
50 #include "memory/iterator.inline.hpp"
51 #include "memory/metadataFactory.hpp"
52 #include "memory/metaspaceClosure.hpp"
53 #include "memory/metaspaceShared.hpp"
54 #include "memory/oopFactory.hpp"
55 #include "memory/resourceArea.hpp"
56 #include "memory/universe.hpp"
57 #include "oops/fieldStreams.inline.hpp"
58 #include "oops/constantPool.hpp"
59 #include "oops/instanceClassLoaderKlass.hpp"
60 #include "oops/instanceKlass.inline.hpp"
61 #include "oops/instanceMirrorKlass.hpp"
62 #include "oops/instanceOop.hpp"
63 #include "oops/klass.inline.hpp"
64 #include "oops/method.hpp"
65 #include "oops/oop.inline.hpp"
66 #include "oops/recordComponent.hpp"
67 #include "oops/symbol.hpp"
68 #include "prims/jvmtiExport.hpp"
69 #include "prims/jvmtiRedefineClasses.hpp"
2528 array_klasses()->remove_unshareable_info();
2529 }
2530
2531 // These are not allocated from metaspace. They are safe to set to NULL.
2532 _source_debug_extension = NULL;
2533 _dep_context = NULL;
2534 _osr_nmethods_head = NULL;
2535 #if INCLUDE_JVMTI
2536 _breakpoints = NULL;
2537 _previous_versions = NULL;
2538 _cached_class_file = NULL;
2539 _jvmti_cached_class_field_map = NULL;
2540 #endif
2541
2542 _init_thread = NULL;
2543 _methods_jmethod_ids = NULL;
2544 _jni_ids = NULL;
2545 _oop_map_cache = NULL;
2546 // clear _nest_host to ensure re-load at runtime
2547 _nest_host = NULL;
2548 _package_entry = NULL;
2549 _dep_context_last_cleaned = 0;
2550 }
2551
2552 void InstanceKlass::remove_java_mirror() {
2553 Klass::remove_java_mirror();
2554
2555 // do array classes also.
2556 if (array_klasses() != NULL) {
2557 array_klasses()->remove_java_mirror();
2558 }
2559 }
2560
2561 void InstanceKlass::restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain,
2562 PackageEntry* pkg_entry, TRAPS) {
2563 // SystemDictionary::add_to_hierarchy() sets the init_state to loaded
2564 // before the InstanceKlass is added to the SystemDictionary. Make
2565 // sure the current state is <loaded.
2566 assert(!is_loaded(), "invalid init state");
2567 set_package(loader_data, pkg_entry, CHECK);
2568 Klass::restore_unshareable_info(loader_data, protection_domain, CHECK);
|
30 #include "classfile/classLoader.hpp"
31 #include "classfile/classLoaderData.inline.hpp"
32 #include "classfile/javaClasses.hpp"
33 #include "classfile/moduleEntry.hpp"
34 #include "classfile/resolutionErrors.hpp"
35 #include "classfile/symbolTable.hpp"
36 #include "classfile/systemDictionary.hpp"
37 #include "classfile/systemDictionaryShared.hpp"
38 #include "classfile/verifier.hpp"
39 #include "classfile/vmSymbols.hpp"
40 #include "code/dependencyContext.hpp"
41 #include "compiler/compileBroker.hpp"
42 #include "gc/shared/collectedHeap.inline.hpp"
43 #include "interpreter/oopMapCache.hpp"
44 #include "interpreter/rewriter.hpp"
45 #include "jvmtifiles/jvmti.h"
46 #include "logging/log.hpp"
47 #include "logging/logMessage.hpp"
48 #include "logging/logStream.hpp"
49 #include "memory/allocation.inline.hpp"
50 #include "memory/archiveUtils.hpp"
51 #include "memory/iterator.inline.hpp"
52 #include "memory/metadataFactory.hpp"
53 #include "memory/metaspaceClosure.hpp"
54 #include "memory/metaspaceShared.hpp"
55 #include "memory/oopFactory.hpp"
56 #include "memory/resourceArea.hpp"
57 #include "memory/universe.hpp"
58 #include "oops/fieldStreams.inline.hpp"
59 #include "oops/constantPool.hpp"
60 #include "oops/instanceClassLoaderKlass.hpp"
61 #include "oops/instanceKlass.inline.hpp"
62 #include "oops/instanceMirrorKlass.hpp"
63 #include "oops/instanceOop.hpp"
64 #include "oops/klass.inline.hpp"
65 #include "oops/method.hpp"
66 #include "oops/oop.inline.hpp"
67 #include "oops/recordComponent.hpp"
68 #include "oops/symbol.hpp"
69 #include "prims/jvmtiExport.hpp"
70 #include "prims/jvmtiRedefineClasses.hpp"
2529 array_klasses()->remove_unshareable_info();
2530 }
2531
2532 // These are not allocated from metaspace. They are safe to set to NULL.
2533 _source_debug_extension = NULL;
2534 _dep_context = NULL;
2535 _osr_nmethods_head = NULL;
2536 #if INCLUDE_JVMTI
2537 _breakpoints = NULL;
2538 _previous_versions = NULL;
2539 _cached_class_file = NULL;
2540 _jvmti_cached_class_field_map = NULL;
2541 #endif
2542
2543 _init_thread = NULL;
2544 _methods_jmethod_ids = NULL;
2545 _jni_ids = NULL;
2546 _oop_map_cache = NULL;
2547 // clear _nest_host to ensure re-load at runtime
2548 _nest_host = NULL;
2549 _package_entry = NULL; // TODO -- point it to the archived PackageEntry (JDK-8249262)
2550 _dep_context_last_cleaned = 0;
2551 }
2552
2553 void InstanceKlass::remove_java_mirror() {
2554 Klass::remove_java_mirror();
2555
2556 // do array classes also.
2557 if (array_klasses() != NULL) {
2558 array_klasses()->remove_java_mirror();
2559 }
2560 }
2561
2562 void InstanceKlass::restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain,
2563 PackageEntry* pkg_entry, TRAPS) {
2564 // SystemDictionary::add_to_hierarchy() sets the init_state to loaded
2565 // before the InstanceKlass is added to the SystemDictionary. Make
2566 // sure the current state is <loaded.
2567 assert(!is_loaded(), "invalid init state");
2568 set_package(loader_data, pkg_entry, CHECK);
2569 Klass::restore_unshareable_info(loader_data, protection_domain, CHECK);
|