8163973: VM Anonymous classes should not call Class File Load Hooks
Ensures CFLH's are not called for VM anonymous classes Reviewed-by: lfoltan, dholmes, coleenp, vlivanov, acorn
This commit is contained in:
parent
11852cb5fa
commit
fca8d5b7b1
@ -31,12 +31,12 @@
|
|||||||
#include "prims/jvmtiEnvBase.hpp"
|
#include "prims/jvmtiEnvBase.hpp"
|
||||||
#include "trace/traceMacros.hpp"
|
#include "trace/traceMacros.hpp"
|
||||||
|
|
||||||
static ClassFileStream* prologue(ClassFileStream* stream,
|
static ClassFileStream* check_class_file_load_hook(ClassFileStream* stream,
|
||||||
Symbol* name,
|
Symbol* name,
|
||||||
ClassLoaderData* loader_data,
|
ClassLoaderData* loader_data,
|
||||||
Handle protection_domain,
|
Handle protection_domain,
|
||||||
JvmtiCachedClassFileData** cached_class_file,
|
JvmtiCachedClassFileData** cached_class_file,
|
||||||
TRAPS) {
|
TRAPS) {
|
||||||
|
|
||||||
assert(stream != NULL, "invariant");
|
assert(stream != NULL, "invariant");
|
||||||
|
|
||||||
@ -102,8 +102,6 @@ instanceKlassHandle KlassFactory::create_from_stream(ClassFileStream* stream,
|
|||||||
assert(loader_data != NULL, "invariant");
|
assert(loader_data != NULL, "invariant");
|
||||||
assert(THREAD->is_Java_thread(), "must be a JavaThread");
|
assert(THREAD->is_Java_thread(), "must be a JavaThread");
|
||||||
|
|
||||||
bool changed_by_loadhook = false;
|
|
||||||
|
|
||||||
ResourceMark rm;
|
ResourceMark rm;
|
||||||
HandleMark hm;
|
HandleMark hm;
|
||||||
|
|
||||||
@ -111,12 +109,15 @@ instanceKlassHandle KlassFactory::create_from_stream(ClassFileStream* stream,
|
|||||||
|
|
||||||
ClassFileStream* old_stream = stream;
|
ClassFileStream* old_stream = stream;
|
||||||
|
|
||||||
stream = prologue(stream,
|
// Skip this processing for VM anonymous classes
|
||||||
name,
|
if (host_klass == NULL) {
|
||||||
loader_data,
|
stream = check_class_file_load_hook(stream,
|
||||||
protection_domain,
|
name,
|
||||||
&cached_class_file,
|
loader_data,
|
||||||
CHECK_NULL);
|
protection_domain,
|
||||||
|
&cached_class_file,
|
||||||
|
CHECK_NULL);
|
||||||
|
}
|
||||||
|
|
||||||
ClassFileParser parser(stream,
|
ClassFileParser parser(stream,
|
||||||
name,
|
name,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user