< prev index next >

src/hotspot/share/oops/instanceKlass.cpp

Print this page


  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);


< prev index next >