[llvm-commits] [vmkit] r52323 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.h JavaMetaJIT.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Mon Jun 16 07:08:20 PDT 2008


Author: geoffray
Date: Mon Jun 16 09:08:20 2008
New Revision: 52323

URL: http://llvm.org/viewvc/llvm-project?rev=52323&view=rev
Log:
Meta field accesses allocations require the class to be at least inClinit.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=52323&r1=52322&r2=52323&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Mon Jun 16 09:08:20 2008
@@ -475,14 +475,14 @@
 
   #define GETVIRTUALFIELD(TYPE, TYPE_NAME) \
   TYPE getVirtual##TYPE_NAME##Field(JavaObject* obj) { \
-    assert(classDef->isReady()); \
+    assert(*(classDef->getStatus()) >= inClinit); \
     void* ptr = (void*)((uint64)obj + ptrOffset); \
     return ((TYPE*)ptr)[0]; \
   }
 
   #define GETSTATICFIELD(TYPE, TYPE_NAME) \
   TYPE getStatic##TYPE_NAME##Field() { \
-    assert(classDef->isReady()); \
+    assert(*(classDef->getStatus()) >= inClinit); \
     JavaObject* obj = classDef->staticInstance(); \
     void* ptr = (void*)((uint64)obj + ptrOffset); \
     return ((TYPE*)ptr)[0]; \
@@ -490,14 +490,14 @@
 
   #define SETVIRTUALFIELD(TYPE, TYPE_NAME) \
   void setVirtual##TYPE_NAME##Field(JavaObject* obj, TYPE val) { \
-    assert(classDef->isReady()); \
+    assert(*(classDef->getStatus()) >= inClinit); \
     void* ptr = (void*)((uint64)obj + ptrOffset); \
     ((TYPE*)ptr)[0] = val; \
   }
 
   #define SETSTATICFIELD(TYPE, TYPE_NAME) \
   void setStatic##TYPE_NAME##Field(TYPE val) { \
-    assert(classDef->isReady()); \
+    assert(*(classDef->getStatus()) >= inClinit); \
     JavaObject* obj = classDef->staticInstance(); \
     void* ptr = (void*)((uint64)obj + ptrOffset); \
     ((TYPE*)ptr)[0] = val; \

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp?rev=52323&r1=52322&r2=52323&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp Mon Jun 16 09:08:20 2008
@@ -50,7 +50,7 @@
 
 
 JavaObject* Class::operator()(Jnjvm* vm) {
-  assert(isReady());
+  assert(*getStatus() >= inClinit);
   return doNew(vm);
 }
 





More information about the llvm-commits mailing list