[vmkit-commits] [vmkit] r146065 - in /vmkit/trunk: include/j3/ lib/j3/ClassLib/ lib/j3/ClassLib/GNUClasspath/ lib/j3/ClassLib/OpenJDK/ lib/j3/Compiler/ lib/j3/LLVMRuntime/ lib/j3/VMCore/
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Dec 7 12:28:37 PST 2011
Author: geoffray
Date: Wed Dec 7 14:28:37 2011
New Revision: 146065
URL: http://llvm.org/viewvc/llvm-project?rev=146065&view=rev
Log:
isAssignableFrom -> isSubclassOf. The first one is just too confusing.
Modified:
vmkit/trunk/include/j3/J3Intrinsics.h
vmkit/trunk/include/j3/jni.h
vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc
vmkit/trunk/lib/j3/ClassLib/ClasspathConstructor.inc
vmkit/trunk/lib/j3/ClassLib/ClasspathMethod.inc
vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMClass.inc
vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMThrowable.inc
vmkit/trunk/lib/j3/ClassLib/OpenJDK/ClasspathReflect.cpp
vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp
vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp
vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp
vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp
vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp
vmkit/trunk/lib/j3/LLVMRuntime/runtime-default.ll
vmkit/trunk/lib/j3/VMCore/JavaClass.cpp
vmkit/trunk/lib/j3/VMCore/JavaClass.h
vmkit/trunk/lib/j3/VMCore/JavaMetaJIT.cpp
vmkit/trunk/lib/j3/VMCore/JavaObject.cpp
vmkit/trunk/lib/j3/VMCore/JavaRuntimeJIT.cpp
vmkit/trunk/lib/j3/VMCore/Jni.cpp
vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp
Modified: vmkit/trunk/include/j3/J3Intrinsics.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/j3/J3Intrinsics.h?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/include/j3/J3Intrinsics.h (original)
+++ vmkit/trunk/include/j3/J3Intrinsics.h Wed Dec 7 14:28:37 2011
@@ -69,7 +69,7 @@
llvm::Function* ResolveInterfaceFunction;
llvm::Function* VirtualLookupFunction;
- llvm::Function* IsAssignableFromFunction;
+ llvm::Function* IsSubclassOfFunction;
llvm::Function* IsSecondaryClassFunction;
llvm::Function* GetDepthFunction;
llvm::Function* GetDisplayFunction;
Modified: vmkit/trunk/include/j3/jni.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/j3/jni.h?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/include/j3/jni.h (original)
+++ vmkit/trunk/include/j3/jni.h Wed Dec 7 14:28:37 2011
@@ -233,7 +233,7 @@
jmethodID, jboolean);
jclass (JNICALL *GetSuperclass) (JNIEnv *, jclass);
- jboolean (JNICALL *IsAssignableFrom) (JNIEnv *, jclass, jclass);
+ jboolean (JNICALL *IsSubclassOf) (JNIEnv *, jclass, jclass);
jobject (JNICALL *ToReflectedField) (JNIEnv *, jclass, jfieldID,
jboolean);
@@ -686,8 +686,8 @@
jclass GetSuperclass (jclass cl0)
{ return p->GetSuperclass (this, cl0); }
- jboolean IsAssignableFrom (jclass cl0, jclass cl1)
- { return p->IsAssignableFrom (this, cl0, cl1); }
+ jboolean IsSubclassOf (jclass cl0, jclass cl1)
+ { return p->IsSubclassOf (this, cl0, cl1); }
jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
{ return p->ToReflectedField (this, cl0, fld1, val2); }
Modified: vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc Wed Dec 7 14:28:37 2011
@@ -71,7 +71,7 @@
for (int i = 0; i < len; i++) {
cur = ArrayObject::getElement((ArrayObject*)src, i + sstart);
if (cur) {
- if (!(JavaObject::getClass(cur)->isAssignableFrom(dstType))) {
+ if (!(JavaObject::getClass(cur)->isSubclassOf(dstType))) {
copyLen = i; // copy up until this element
break;
}
Modified: vmkit/trunk/lib/j3/ClassLib/ClasspathConstructor.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/ClasspathConstructor.inc?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/ClasspathConstructor.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/ClasspathConstructor.inc Wed Dec 7 14:28:37 2011
@@ -124,7 +124,7 @@
excp = th->getJavaException();
} END_CATCH;
if (excp) {
- if (JavaObject::getClass(excp)->isAssignableFrom(vm->upcalls->newException)) {
+ if (JavaObject::getClass(excp)->isSubclassOf(vm->upcalls->newException)) {
th->clearException();
// If it's an exception, we encapsule it in an
// invocationTargetException
Modified: vmkit/trunk/lib/j3/ClassLib/ClasspathMethod.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/ClasspathMethod.inc?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/ClasspathMethod.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/ClasspathMethod.inc Wed Dec 7 14:28:37 2011
@@ -126,7 +126,7 @@
if (isVirtual(meth->access)) {
verifyNull(obj);
UserCommonClass* objCl = JavaObject::getClass(obj);
- if (!(objCl->isAssignableFrom(cl))) {
+ if (!(objCl->isSubclassOf(cl))) {
vm->illegalArgumentException("<this> is not a valid type");
}
Modified: vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMClass.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMClass.inc?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMClass.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMClass.inc Wed Dec 7 14:28:37 2011
@@ -275,7 +275,7 @@
UserCommonClass* cl1 = UserCommonClass::resolvedImplClass(vm, Cl1, false);
UserCommonClass* cl2 = UserCommonClass::resolvedImplClass(vm, Cl2, false);
- res = cl2->isAssignableFrom(cl1);
+ res = cl2->isSubclassOf(cl1);
END_NATIVE_EXCEPTION
Modified: vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMThrowable.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMThrowable.inc?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMThrowable.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathVMThrowable.inc Wed Dec 7 14:28:37 2011
@@ -149,7 +149,7 @@
else {
JavaMethod* meth = (JavaMethod*)FI->Metadata;
assert(meth && "Wrong stack trace");
- if (meth->classDef->isAssignableFrom(vm->upcalls->newThrowable)) {
+ if (meth->classDef->isSubclassOf(vm->upcalls->newThrowable)) {
++index;
} else break;
}
Modified: vmkit/trunk/lib/j3/ClassLib/OpenJDK/ClasspathReflect.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/OpenJDK/ClasspathReflect.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/OpenJDK/ClasspathReflect.cpp (original)
+++ vmkit/trunk/lib/j3/ClassLib/OpenJDK/ClasspathReflect.cpp Wed Dec 7 14:28:37 2011
@@ -49,7 +49,7 @@
else {
JavaMethod* meth = (JavaMethod*)FI->Metadata;
assert(meth && "Wrong stack trace");
- if (meth->classDef->isAssignableFrom(vm->upcalls->newThrowable)) {
+ if (meth->classDef->isSubclassOf(vm->upcalls->newThrowable)) {
++index;
} else return index;
}
Modified: vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp Wed Dec 7 14:28:37 2011
@@ -177,7 +177,7 @@
GetClassDelegateeFunction = module->getFunction("getClassDelegatee");
RuntimeDelegateeFunction = module->getFunction("j3RuntimeDelegatee");
- IsAssignableFromFunction = module->getFunction("isAssignableFrom");
+ IsSubclassOfFunction = module->getFunction("isSubclassOf");
IsSecondaryClassFunction = module->getFunction("isSecondaryClass");
GetDepthFunction = module->getFunction("getDepth");
GetStaticInstanceFunction = module->getFunction("getStaticInstance");
Modified: vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp Wed Dec 7 14:28:37 2011
@@ -1607,7 +1607,7 @@
Tracer = ArrayObjectTracer;
}
} else if (classDef->isClass()) {
- if (classDef->isAssignableFrom(
+ if (classDef->isSubclassOf(
classDef->classLoader->bootstrapLoader->upcalls->newReference)) {
Tracer = ReferenceObjectTracer;
} else {
Modified: vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp Wed Dec 7 14:28:37 2011
@@ -61,7 +61,7 @@
bool JavaJIT::needsInitialisationCheck(Class* cl) {
if (cl->isReadyForCompilation() ||
- (!cl->isInterface() && compilingClass->isAssignableFrom(cl))) {
+ (!cl->isInterface() && compilingClass->isSubclassOf(cl))) {
return false;
}
@@ -141,7 +141,7 @@
if (thisReference && meth) {
isCustomizable = true;
if ((customizeFor != NULL)
- && customizeFor->isAssignableFrom(cl)) {
+ && customizeFor->isSubclassOf(cl)) {
meth = customizeFor->lookupMethodDontThrow(
meth->name, meth->type, false, true, NULL);
assert(meth);
Modified: vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp Wed Dec 7 14:28:37 2011
@@ -682,7 +682,7 @@
case AASTORE : {
if (TheCompiler->hasExceptionsEnabled()) {
- // Get val and object and don't pop them: IsAssignableFromFunction
+ // Get val and object and don't pop them: IsSubclassOfFunction
// may go into runtime and we don't want values in registers at that
// point.
Value* val = new LoadInst(objectStack[currentStackIndex - 1], "",
@@ -712,7 +712,7 @@
Value* VTArgs[2] = { valVT, objVT };
- Value* res = CallInst::Create(intrinsics->IsAssignableFromFunction,
+ Value* res = CallInst::Create(intrinsics->IsSubclassOfFunction,
VTArgs, "", currentBlock);
BranchInst::Create(endBlock, exceptionBlock, res, currentBlock);
@@ -2271,7 +2271,7 @@
TheVT, "");
}
} else {
- res = CallInst::Create(intrinsics->IsAssignableFromFunction,
+ res = CallInst::Create(intrinsics->IsSubclassOfFunction,
classArgs, "", currentBlock);
}
@@ -3339,7 +3339,7 @@
bool customized = false;
if (!(isFinal(cl->access) || isFinal(meth->access))) {
if (customizeFor == NULL) return false;
- if (!customizeFor->isAssignableFrom(cl)) return false;
+ if (!customizeFor->isSubclassOf(cl)) return false;
meth = customizeFor->lookupMethodDontThrow(
meth->name, meth->type, false, true, NULL);
assert(meth);
Modified: vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp Wed Dec 7 14:28:37 2011
@@ -501,7 +501,7 @@
Value* res = new LoadInst(val, "", CI);
CI->replaceAllUsesWith(res);
CI->eraseFromParent();
- } else if (V == intrinsics->IsAssignableFromFunction) {
+ } else if (V == intrinsics->IsSubclassOfFunction) {
Changed = true;
Value* VT1 = Call.getArgument(0);
Value* VT2 = Call.getArgument(1);
Modified: vmkit/trunk/lib/j3/LLVMRuntime/runtime-default.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/LLVMRuntime/runtime-default.ll?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/LLVMRuntime/runtime-default.ll (original)
+++ vmkit/trunk/lib/j3/LLVMRuntime/runtime-default.ll Wed Dec 7 14:28:37 2011
@@ -208,8 +208,8 @@
;;; block or method.
declare void @j3JavaObjectRelease(%JavaObject*)
-;;; isAssignableFrom - Returns if a type is a subtype of another type.
-declare i1 @isAssignableFrom(%VT*, %VT*) readnone
+;;; isSubclassOf - Returns if a type is a subtype of another type.
+declare i1 @isSubclassOf(%VT*, %VT*) readnone
;;; isSecondaryClass - Returns if a type is a secondary super type of
;;; another type.
Modified: vmkit/trunk/lib/j3/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JavaClass.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JavaClass.cpp Wed Dec 7 14:28:37 2011
@@ -315,7 +315,7 @@
if (meth &&
isSuper(current->access) &&
current != meth->classDef &&
- meth->classDef->isAssignableFrom(current) &&
+ meth->classDef->isSubclassOf(current) &&
!name->equals(classLoader->bootstrapLoader->initName)) {
meth = current->super->lookupMethodDontThrow(name, type, false, true, NULL);
}
@@ -490,7 +490,7 @@
}
}
-bool UserCommonClass::isAssignableFrom(UserCommonClass* cl) {
+bool UserCommonClass::isSubclassOf(UserCommonClass* cl) {
assert(virtualVT && cl->virtualVT);
return virtualVT->isSubtypeOf(cl->virtualVT);
}
@@ -1362,7 +1362,7 @@
Class* referenceClass =
C->classLoader->bootstrapLoader->upcalls->newReference;
- if (referenceClass != NULL && C->super->isAssignableFrom(referenceClass)) {
+ if (referenceClass != NULL && C->super->isSubclassOf(referenceClass)) {
tracer = (word_t)ReferenceObjectTracer;
} else {
tracer = (word_t)RegularObjectTracer;
Modified: vmkit/trunk/lib/j3/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JavaClass.h?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/j3/VMCore/JavaClass.h Wed Dec 7 14:28:37 2011
@@ -293,10 +293,10 @@
///
bool isOfTypeName(const UTF8* Tname);
- /// isAssignableFrom - Is this class assignable from the given class? The
+ /// isSubclassOf - Is this class assignable from the given class? The
/// classes may be of any type.
///
- bool isAssignableFrom(CommonClass* cl);
+ bool isSubclassOf(CommonClass* cl);
/// getClassDelegatee - Return the java/lang/Class representation of this
/// class.
Modified: vmkit/trunk/lib/j3/VMCore/JavaMetaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JavaMetaJIT.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JavaMetaJIT.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JavaMetaJIT.cpp Wed Dec 7 14:28:37 2011
@@ -172,7 +172,7 @@
meth = objCl->lookupMethodDontThrow(name, type, false, true, &cl); \
} \
assert(meth && "No method found"); \
- assert(objCl->isAssignableFrom(meth->classDef) && "Wrong type"); \
+ assert(objCl->isSubclassOf(meth->classDef) && "Wrong type"); \
void* func = meth->compiledPtr(); \
FUNC_TYPE_VIRTUAL_BUF call = (FUNC_TYPE_VIRTUAL_BUF)sign->getVirtualCallBuf(); \
JavaThread* th = JavaThread::get(); \
Modified: vmkit/trunk/lib/j3/VMCore/JavaObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JavaObject.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JavaObject.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JavaObject.cpp Wed Dec 7 14:28:37 2011
@@ -352,5 +352,5 @@
bool JavaObject::instanceOf(JavaObject* self, UserCommonClass* cl) {
llvm_gcroot(self, 0);
if (self == NULL) return false;
- else return getClass(self)->isAssignableFrom(cl);
+ else return getClass(self)->isSubclassOf(cl);
}
Modified: vmkit/trunk/lib/j3/VMCore/JavaRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JavaRuntimeJIT.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JavaRuntimeJIT.cpp Wed Dec 7 14:28:37 2011
@@ -387,7 +387,7 @@
ctpInfo->infoOfMethod(ctpIndex, ACC_VIRTUAL, ctpCl, origMeth);
ctpInfo->resolveMethod(ctpIndex, ctpCl, utf8, sign);
- assert(cl->isAssignableFrom(ctpCl) && "Wrong call object");
+ assert(cl->isSubclassOf(ctpCl) && "Wrong call object");
UserClass* lookup = cl->isArray() ? cl->super : cl->asClass();
JavaMethod* Virt = lookup->lookupMethod(utf8, sign->keyName, false, true, 0);
Modified: vmkit/trunk/lib/j3/VMCore/Jni.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/Jni.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/Jni.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/Jni.cpp Wed Dec 7 14:28:37 2011
@@ -150,7 +150,7 @@
}
-jboolean IsAssignableFrom(JNIEnv *env, jclass _sub, jclass _sup) {
+jboolean IsSubclassOf(JNIEnv *env, jclass _sub, jclass _sup) {
BEGIN_JNI_EXCEPTION
@@ -166,7 +166,7 @@
UserCommonClass* cl1 =
UserCommonClass::resolvedImplClass(vm, sub, false);
- jboolean res = (jboolean)cl1->isAssignableFrom(cl2);
+ jboolean res = (jboolean)cl1->isSubclassOf(cl2);
RETURN_FROM_JNI(res);
END_JNI_EXCEPTION
@@ -4154,7 +4154,7 @@
&FromReflectedField,
&ToReflectedMethod,
&GetSuperclass,
- &IsAssignableFrom,
+ &IsSubclassOf,
&ToReflectedField,
&Throw,
Modified: vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp?rev=146065&r1=146064&r2=146065&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp Wed Dec 7 14:28:37 2011
@@ -201,7 +201,7 @@
// ExceptionInInitializerError cannot be created because an
// OutOfMemoryError occurs, then instead use an OutOfMemoryError object
// in place of E in the following step.
- if (JavaObject::getClass(exc)->isAssignableFrom(vm->upcalls->newException)) {
+ if (JavaObject::getClass(exc)->isSubclassOf(vm->upcalls->newException)) {
Classpath* upcalls = classLoader->bootstrapLoader->upcalls;
UserClass* clExcp = upcalls->ExceptionInInitializerError;
Jnjvm* vm = self->getJVM();
More information about the vmkit-commits
mailing list