[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