Mercurial > hg > truffle
comparison src/share/vm/prims/jvm.cpp @ 356:1ee8caae33af
Merge
author | tonyp |
---|---|
date | Thu, 21 Aug 2008 23:36:31 -0400 |
parents | 37f87013dfd8 9c2ecc2ffb12 |
children | f008d3631bd1 |
comparison
equal
deleted
inserted
replaced
355:0edda524b58c | 356:1ee8caae33af |
---|---|
1 /* | 1 /* |
2 * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. | 2 * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
626 JVM_ENTRY(void, JVM_ResolveClass(JNIEnv* env, jclass cls)) | 626 JVM_ENTRY(void, JVM_ResolveClass(JNIEnv* env, jclass cls)) |
627 JVMWrapper("JVM_ResolveClass"); | 627 JVMWrapper("JVM_ResolveClass"); |
628 if (PrintJVMWarnings) warning("JVM_ResolveClass not implemented"); | 628 if (PrintJVMWarnings) warning("JVM_ResolveClass not implemented"); |
629 JVM_END | 629 JVM_END |
630 | 630 |
631 // Rationale behind JVM_FindClassFromBootLoader | |
632 // a> JVM_FindClassFromClassLoader was never exported in the export tables. | |
633 // b> because of (a) java.dll has a direct dependecy on the unexported | |
634 // private symbol "_JVM_FindClassFromClassLoader@20". | |
635 // c> the launcher cannot use the private symbol as it dynamically opens | |
636 // the entry point, so if something changes, the launcher will fail | |
637 // unexpectedly at runtime, it is safest for the launcher to dlopen a | |
638 // stable exported interface. | |
639 // d> re-exporting JVM_FindClassFromClassLoader as public, will cause its | |
640 // signature to change from _JVM_FindClassFromClassLoader@20 to | |
641 // JVM_FindClassFromClassLoader and will not be backward compatible | |
642 // with older JDKs. | |
643 // Thus a public/stable exported entry point is the right solution, | |
644 // public here means public in linker semantics, and is exported only | |
645 // to the JDK, and is not intended to be a public API. | |
646 | |
647 JVM_ENTRY(jclass, JVM_FindClassFromBootLoader(JNIEnv* env, | |
648 const char* name, | |
649 jboolean throwError)) | |
650 JVMWrapper3("JVM_FindClassFromBootLoader %s throw %s", name, | |
651 throwError ? "error" : "exception"); | |
652 return JVM_FindClassFromClassLoader(env, name, JNI_FALSE, | |
653 (jobject)NULL, throwError); | |
654 JVM_END | |
631 | 655 |
632 JVM_ENTRY(jclass, JVM_FindClassFromClassLoader(JNIEnv* env, const char* name, | 656 JVM_ENTRY(jclass, JVM_FindClassFromClassLoader(JNIEnv* env, const char* name, |
633 jboolean init, jobject loader, | 657 jboolean init, jobject loader, |
634 jboolean throwError)) | 658 jboolean throwError)) |
635 JVMWrapper3("JVM_FindClassFromClassLoader %s throw %s", name, | 659 JVMWrapper3("JVM_FindClassFromClassLoader %s throw %s", name, |