[vmkit-commits] [vmkit] r180311 - Enabling assertions with GNU Classpath 0.99.
Peter Senna Tschudin
peter.senna at gmail.com
Thu Apr 25 09:54:41 PDT 2013
Author: peter.senna
Date: Thu Apr 25 11:53:01 2013
New Revision: 180311
URL: http://llvm.org/viewvc/llvm-project?rev=180311&view=rev
Log:
Enabling assertions with GNU Classpath 0.99.
The first use of class VMConstructor is inside the JVM not in jited code. So, the is not ready. Solution??? The class is marked as ready by hand. The same for VMField and VMMethod
(cherry picked from commit 24cbf4f6b2d9bfed272ae82a9d6480ba27b66d5f)
Modified:
vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathReflect.cpp
Modified: vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathReflect.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathReflect.cpp?rev=180311&r1=180310&r2=180311&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathReflect.cpp (original)
+++ vmkit/trunk/lib/j3/ClassLib/GNUClasspath/ClasspathReflect.cpp Thu Apr 25 11:53:01 2013
@@ -50,6 +50,8 @@ JavaObjectConstructor* JavaObjectConstru
llvm_gcroot(vmConsInstance, 0);
Jnjvm* vm = JavaThread::get()->getJVM();
VMConsClass = vm->upcalls->newVMConstructor;
+ if (!VMConsClass->isReady())
+ VMConsClass->setInitializationState(ready);
vmConsInstance = VMConsClass->doNew(vm);
JavaObject* const* Cl = cons->classDef->getDelegateePtr();
vm->upcalls->initVMConstructor->invokeIntSpecial(vm, VMConsClass, vmConsInstance, Cl, i);
@@ -70,6 +72,8 @@ JavaObjectMethod* JavaObjectMethod::crea
Jnjvm* vm = JavaThread::get()->getJVM();
UserClass* VMMeth = vm->upcalls->newVMMethod;
+ if (!VMMeth->isReady())
+ VMMeth->setInitializationState(ready);
vmMeth = (JavaObjectVMMethod*)VMMeth->doNew(vm);
@@ -99,6 +103,8 @@ JavaObjectField* JavaObjectField::create
Jnjvm* vm = JavaThread::get()->getJVM();
UserClass* VMFieldClass = vm->upcalls->newVMField;
+ if (!VMFieldClass->isReady())
+ VMFieldClass->setInitializationState(ready);
vmField = VMFieldClass->doNew(vm);
name = vm->internalUTF8ToStr(field->name);
JavaObject* const* Cl = field->classDef->getDelegateePtr();
More information about the vmkit-commits
mailing list