1.1 --- a/src/share/vm/classfile/classLoaderData.cpp Fri Dec 21 10:27:49 2012 -0800 1.2 +++ b/src/share/vm/classfile/classLoaderData.cpp Mon Dec 03 15:09:39 2012 -0800 1.3 @@ -330,10 +330,19 @@ 1.4 } 1.5 if (this == the_null_class_loader_data()) { 1.6 assert (class_loader() == NULL, "Must be"); 1.7 - size_t word_size = Metaspace::first_chunk_word_size(); 1.8 - set_metaspace(new Metaspace(_metaspace_lock, word_size)); 1.9 + set_metaspace(new Metaspace(_metaspace_lock, Metaspace::BootMetaspaceType)); 1.10 + } else if (is_anonymous()) { 1.11 + if (TraceClassLoaderData && Verbose && class_loader() != NULL) { 1.12 + tty->print_cr("is_anonymous: %s", class_loader()->klass()->internal_name()); 1.13 + } 1.14 + set_metaspace(new Metaspace(_metaspace_lock, Metaspace::AnonymousMetaspaceType)); 1.15 + } else if (class_loader()->is_a(SystemDictionary::reflect_DelegatingClassLoader_klass())) { 1.16 + if (TraceClassLoaderData && Verbose && class_loader() != NULL) { 1.17 + tty->print_cr("is_reflection: %s", class_loader()->klass()->internal_name()); 1.18 + } 1.19 + set_metaspace(new Metaspace(_metaspace_lock, Metaspace::ReflectionMetaspaceType)); 1.20 } else { 1.21 - set_metaspace(new Metaspace(_metaspace_lock)); // default size for now. 1.22 + set_metaspace(new Metaspace(_metaspace_lock, Metaspace::StandardMetaspaceType)); 1.23 } 1.24 } 1.25 return _metaspace; 1.26 @@ -672,8 +681,8 @@ 1.27 "only supported for null loader data for now"); 1.28 assert (!_shared_metaspaces_initialized, "only initialize once"); 1.29 MutexLockerEx ml(metaspace_lock(), Mutex::_no_safepoint_check_flag); 1.30 - _ro_metaspace = new Metaspace(_metaspace_lock, SharedReadOnlySize/wordSize); 1.31 - _rw_metaspace = new Metaspace(_metaspace_lock, SharedReadWriteSize/wordSize); 1.32 + _ro_metaspace = new Metaspace(_metaspace_lock, Metaspace::ROMetaspaceType); 1.33 + _rw_metaspace = new Metaspace(_metaspace_lock, Metaspace::ReadWriteMetaspaceType); 1.34 _shared_metaspaces_initialized = true; 1.35 } 1.36