[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