comparison src/share/vm/classfile/classLoaderData.inline.hpp @ 8667:1f9994892f89

8008549: NPG: SystemDictionary::find(...) unnecessarily keeps class loaders alive Summary: SystemDictionary::find(...) should not create and register ClassLoaderData objects for class loaders. Reviewed-by: coleenp, acorn Contributed-by: Stefan Karlsson <stefan.karlsson@oracle.com>, Erik Helin <erik.helin@oracle.com>
author stefank
date Thu, 21 Feb 2013 17:22:15 +0100
parents 90273fc0a981
children 1cb4795305b9
comparison
equal deleted inserted replaced
8106:ec2eddfed950 8667:1f9994892f89
23 */ 23 */
24 24
25 #include "classfile/classLoaderData.hpp" 25 #include "classfile/classLoaderData.hpp"
26 #include "classfile/javaClasses.hpp" 26 #include "classfile/javaClasses.hpp"
27 27
28 inline ClassLoaderData* ClassLoaderData::class_loader_data_or_null(oop loader) {
29 if (loader == NULL) {
30 return ClassLoaderData::the_null_class_loader_data();
31 }
32 return java_lang_ClassLoader::loader_data(loader);
33 }
34
28 inline ClassLoaderData* ClassLoaderData::class_loader_data(oop loader) { 35 inline ClassLoaderData* ClassLoaderData::class_loader_data(oop loader) {
29 if (loader == NULL) return ClassLoaderData::the_null_class_loader_data(); 36 ClassLoaderData* loader_data = class_loader_data_or_null(loader);
30 ClassLoaderData* loader_data = java_lang_ClassLoader::loader_data(loader);
31 assert(loader_data != NULL, "Must be"); 37 assert(loader_data != NULL, "Must be");
32 return loader_data; 38 return loader_data;
33 } 39 }
34 40
35 41