< prev index next >

src/share/vm/services/classLoadingService.cpp

Print this page

        

*** 195,221 **** bool value = MemoryService::get_verbose() || ClassLoadingService::get_verbose(); LogLevelType level = value ? LogLevel::Info : LogLevel::Off; LogConfiguration::configure_stdout(level, false, LOG_TAGS(class, unload)); } ! GrowableArray<KlassHandle>* LoadedClassesEnumerator::_loaded_classes = NULL; Thread* LoadedClassesEnumerator::_current_thread = NULL; LoadedClassesEnumerator::LoadedClassesEnumerator(Thread* cur_thread) { assert(cur_thread == Thread::current(), "Check current thread"); int init_size = ClassLoadingService::loaded_class_count(); ! _klass_handle_array = new GrowableArray<KlassHandle>(init_size); // For consistency of the loaded classes, grab the SystemDictionary lock MutexLocker sd_mutex(SystemDictionary_lock); // Set _loaded_classes and _current_thread and begin enumerating all classes. // Only one thread will do the enumeration at a time. // These static variables are needed and they are used by the static method // add_loaded_class called from classes_do(). ! _loaded_classes = _klass_handle_array; _current_thread = cur_thread; SystemDictionary::classes_do(&add_loaded_class); // FIXME: Exclude array klasses for now --- 195,221 ---- bool value = MemoryService::get_verbose() || ClassLoadingService::get_verbose(); LogLevelType level = value ? LogLevel::Info : LogLevel::Off; LogConfiguration::configure_stdout(level, false, LOG_TAGS(class, unload)); } ! GrowableArray<Klass*>* LoadedClassesEnumerator::_loaded_classes = NULL; Thread* LoadedClassesEnumerator::_current_thread = NULL; LoadedClassesEnumerator::LoadedClassesEnumerator(Thread* cur_thread) { assert(cur_thread == Thread::current(), "Check current thread"); int init_size = ClassLoadingService::loaded_class_count(); ! _klass_array = new GrowableArray<Klass*>(init_size); // For consistency of the loaded classes, grab the SystemDictionary lock MutexLocker sd_mutex(SystemDictionary_lock); // Set _loaded_classes and _current_thread and begin enumerating all classes. // Only one thread will do the enumeration at a time. // These static variables are needed and they are used by the static method // add_loaded_class called from classes_do(). ! _loaded_classes = _klass_array; _current_thread = cur_thread; SystemDictionary::classes_do(&add_loaded_class); // FIXME: Exclude array klasses for now
< prev index next >