Mercurial > hg > truffle
diff 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 |
line wrap: on
line diff
--- a/src/share/vm/classfile/classLoaderData.inline.hpp Tue Feb 26 14:09:52 2013 +0100 +++ b/src/share/vm/classfile/classLoaderData.inline.hpp Thu Feb 21 17:22:15 2013 +0100 @@ -25,9 +25,15 @@ #include "classfile/classLoaderData.hpp" #include "classfile/javaClasses.hpp" +inline ClassLoaderData* ClassLoaderData::class_loader_data_or_null(oop loader) { + if (loader == NULL) { + return ClassLoaderData::the_null_class_loader_data(); + } + return java_lang_ClassLoader::loader_data(loader); +} + inline ClassLoaderData* ClassLoaderData::class_loader_data(oop loader) { - if (loader == NULL) return ClassLoaderData::the_null_class_loader_data(); - ClassLoaderData* loader_data = java_lang_ClassLoader::loader_data(loader); + ClassLoaderData* loader_data = class_loader_data_or_null(loader); assert(loader_data != NULL, "Must be"); return loader_data; }