diff options
author | tonyp <none@none> | 2008-08-21 23:36:31 -0400 |
---|---|---|
committer | tonyp <none@none> | 2008-08-21 23:36:31 -0400 |
commit | 93a523cef1b21c01ff25ca491345477880cda664 (patch) | |
tree | 8f474fbee2652cc46599123add09eb7786202fba /src/share/vm/prims/jvm.cpp | |
parent | 0d090da9d671cfa0b24943bff048833620df377b (diff) | |
parent | b115a53b3c1be517bc21337f510c459cf64cb408 (diff) | |
download | jdk8u_hotspot-93a523cef1b21c01ff25ca491345477880cda664.tar.gz |
Merge
Diffstat (limited to 'src/share/vm/prims/jvm.cpp')
-rw-r--r-- | src/share/vm/prims/jvm.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/share/vm/prims/jvm.cpp b/src/share/vm/prims/jvm.cpp index 222794fe2..eb99862b1 100644 --- a/src/share/vm/prims/jvm.cpp +++ b/src/share/vm/prims/jvm.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -628,6 +628,30 @@ JVM_ENTRY(void, JVM_ResolveClass(JNIEnv* env, jclass cls)) if (PrintJVMWarnings) warning("JVM_ResolveClass not implemented"); JVM_END +// Rationale behind JVM_FindClassFromBootLoader +// a> JVM_FindClassFromClassLoader was never exported in the export tables. +// b> because of (a) java.dll has a direct dependecy on the unexported +// private symbol "_JVM_FindClassFromClassLoader@20". +// c> the launcher cannot use the private symbol as it dynamically opens +// the entry point, so if something changes, the launcher will fail +// unexpectedly at runtime, it is safest for the launcher to dlopen a +// stable exported interface. +// d> re-exporting JVM_FindClassFromClassLoader as public, will cause its +// signature to change from _JVM_FindClassFromClassLoader@20 to +// JVM_FindClassFromClassLoader and will not be backward compatible +// with older JDKs. +// Thus a public/stable exported entry point is the right solution, +// public here means public in linker semantics, and is exported only +// to the JDK, and is not intended to be a public API. + +JVM_ENTRY(jclass, JVM_FindClassFromBootLoader(JNIEnv* env, + const char* name, + jboolean throwError)) + JVMWrapper3("JVM_FindClassFromBootLoader %s throw %s", name, + throwError ? "error" : "exception"); + return JVM_FindClassFromClassLoader(env, name, JNI_FALSE, + (jobject)NULL, throwError); +JVM_END JVM_ENTRY(jclass, JVM_FindClassFromClassLoader(JNIEnv* env, const char* name, jboolean init, jobject loader, |