[vmkit-commits] [vmkit] r143196 - in /vmkit/trunk/lib/J3/ClassLib/OpenJDK: ClasspathReflect.cpp ClasspathReflect.h
Will Dietz
wdietz2 at illinois.edu
Fri Oct 28 07:16:04 PDT 2011
Author: wdietz2
Date: Fri Oct 28 09:16:04 2011
New Revision: 143196
URL: http://llvm.org/viewvc/llvm-project?rev=143196&view=rev
Log:
Fix field layout for objects in ClasspathReflect.h for OpenJDK
Modified:
vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.cpp
vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h
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=143196&r1=143195&r2=143196&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.cpp (original)
+++ vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.cpp Fri Oct 28 09:16:04 2011
@@ -16,14 +16,14 @@
JavaMethod* JavaObjectConstructor::getInternalMethod(JavaObjectConstructor* self) {
llvm_gcroot(self, 0);
- UserCommonClass* cls = JavaObjectClass::getClass(self->declaringClass);
+ UserCommonClass* cls = JavaObjectClass::getClass(self->clazz);
return &(cls->asClass()->virtualMethods[self->slot]);
}
JavaMethod* JavaObjectMethod::getInternalMethod(JavaObjectMethod* self) {
llvm_gcroot(self, 0);
- UserCommonClass* cls = JavaObjectClass::getClass(self->declaringClass);
+ UserCommonClass* cls = JavaObjectClass::getClass(self->clazz);
return &(cls->asClass()->virtualMethods[self->slot]);
}
Modified: vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h?rev=143196&r1=143195&r2=143196&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h (original)
+++ vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h Fri Oct 28 09:16:04 2011
@@ -20,41 +20,71 @@
class JavaObjectClass : public JavaObject {
private:
- JavaObject* signers;
- JavaObject* pd;
- UserCommonClass* vmdata;
- JavaObject* constructor;
+ JavaObject* cachedConstructor;
+ JavaObject* newInstanceCallerCache;
+ JavaString* name;
+ JavaObject* declaredFields;
+ JavaObject* publicFields;
+ JavaObject* declaredMethods;
+ JavaObject* publicMethods;
+ JavaObject* declaredConstructors;
+ JavaObject* publicConstructors;
+ JavaObject* declaredPublicFields;
+ uint32_t classRedefinedCount;
+ uint32_t lastRedefinedCount;
+ JavaObject* genericInfo;
+ JavaObject* enumConstants;
+ JavaObject* enumConstantDictionary;
+ JavaObject* annotations;
+ JavaObject* declaredAnnotations;
+ JavaObject* annotationType;
public:
static UserCommonClass* getClass(JavaObjectClass* cl) {
llvm_gcroot(cl, 0);
- return cl->vmdata;
+ UNIMPLEMENTED();
+ return NULL;
}
static void setClass(JavaObjectClass* cl, UserCommonClass* vmdata) {
llvm_gcroot(cl, 0);
- cl->vmdata = vmdata;
+ UNIMPLEMENTED();
}
static void setProtectionDomain(JavaObjectClass* cl, JavaObject* pd) {
llvm_gcroot(cl, 0);
llvm_gcroot(pd, 0);
- mvm::Collector::objectReferenceWriteBarrier(
- (gc*)cl, (gc**)&(cl->pd), (gc*)pd);
+ UNIMPLEMENTED();
}
static JavaObject* getProtectionDomain(JavaObjectClass* cl) {
llvm_gcroot(cl, 0);
- return cl->pd;
+ UNIMPLEMENTED();
+ return NULL;
}
static void staticTracer(JavaObjectClass* obj, word_t closure) {
- mvm::Collector::markAndTrace(obj, &obj->pd, closure);
- mvm::Collector::markAndTrace(obj, &obj->signers, closure);
- mvm::Collector::markAndTrace(obj, &obj->constructor, closure);
- if (obj->vmdata) {
- JavaObject** Obj = obj->vmdata->classLoader->getJavaClassLoaderPtr();
+ mvm::Collector::markAndTrace(obj, &obj->cachedConstructor, closure);
+ mvm::Collector::markAndTrace(obj, &obj->newInstanceCallerCache, closure);
+ mvm::Collector::markAndTrace(obj, &obj->name, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredFields, closure);
+ mvm::Collector::markAndTrace(obj, &obj->publicFields, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredMethods, closure);
+ mvm::Collector::markAndTrace(obj, &obj->publicMethods, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredConstructors, closure);
+ mvm::Collector::markAndTrace(obj, &obj->publicConstructors, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredPublicFields, closure);
+ mvm::Collector::markAndTrace(obj, &obj->genericInfo, closure);
+ mvm::Collector::markAndTrace(obj, &obj->enumConstants, closure);
+ mvm::Collector::markAndTrace(obj, &obj->enumConstantDictionary, closure);
+ mvm::Collector::markAndTrace(obj, &obj->annotations, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredAnnotations, closure);
+ mvm::Collector::markAndTrace(obj, &obj->annotationType, closure);
+
+ UserCommonClass * cl = getClass(obj);
+ if (cl) {
+ JavaObject** Obj = cl->classLoader->getJavaClassLoaderPtr();
if (*Obj) mvm::Collector::markAndTraceRoot(Obj, closure);
}
}
@@ -62,27 +92,47 @@
class JavaObjectField : public JavaObject {
private:
- uint8 flag;
- JavaObjectClass* declaringClass;
+ JavaObjectClass * clazz;
+ uint32_t slot;
JavaObject* name;
- uint32 slot;
+ JavaObject* type;
+ uint32_t modifiers;
+ JavaString* signature;
+ JavaObject* genericInfo;
+ JavaObject* annotations;
+ JavaObject* fieldAccessor;
+ JavaObject* overrideFieldAccessor;
+ JavaObject* root;
+ JavaObject* securityCheckCache;
+ JavaObject* securityCheckTargetClassCache;
+ JavaObject* declaredAnnotations;
public:
static void staticTracer(JavaObjectField* obj, word_t closure) {
+ mvm::Collector::markAndTrace(obj, &obj->clazz, closure);
mvm::Collector::markAndTrace(obj, &obj->name, closure);
- mvm::Collector::markAndTrace(obj, &obj->declaringClass, closure);
+ mvm::Collector::markAndTrace(obj, &obj->type, closure);
+ mvm::Collector::markAndTrace(obj, &obj->signature, closure);
+ mvm::Collector::markAndTrace(obj, &obj->genericInfo, closure);
+ mvm::Collector::markAndTrace(obj, &obj->annotations, closure);
+ mvm::Collector::markAndTrace(obj, &obj->fieldAccessor, closure);
+ mvm::Collector::markAndTrace(obj, &obj->overrideFieldAccessor, closure);
+ mvm::Collector::markAndTrace(obj, &obj->root, closure);
+ mvm::Collector::markAndTrace(obj, &obj->securityCheckCache, closure);
+ mvm::Collector::markAndTrace(obj, &obj->securityCheckTargetClassCache, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredAnnotations, closure);
}
static JavaField* getInternalField(JavaObjectField* self) {
llvm_gcroot(self, 0);
- UserCommonClass* cls = JavaObjectClass::getClass(self->declaringClass);
+ UserCommonClass* cls = JavaObjectClass::getClass(self->clazz);
return &(cls->asClass()->virtualFields[self->slot]);
}
static UserClass* getClass(JavaObjectField* self) {
llvm_gcroot(self, 0);
- UserCommonClass* cls = JavaObjectClass::getClass(self->declaringClass);
+ UserCommonClass* cls = JavaObjectClass::getClass(self->clazz);
return cls->asClass();
}
@@ -90,23 +140,49 @@
class JavaObjectMethod : public JavaObject {
private:
- uint8 flag;
- JavaObjectClass* declaringClass;
- JavaObject* name;
+ JavaObjectClass* clazz;
uint32 slot;
+ JavaObject* name;
+ JavaObject* returnType;
+ JavaObject* parameterTypes;
+ JavaObject* exceptionTypes;
+ uint32_t modifiers;
+ JavaString* Signature;
+ JavaObject* genericInfo;
+ JavaObject* annotations;
+ JavaObject* parameterAnnotations;
+ JavaObject* annotationDefault;
+ JavaObject* methodAccessor;
+ JavaObject* root;
+ JavaObject* securityCheckCache;
+ JavaObject* securityCheckTargetClassCache;
+ JavaObject* declaredAnnotations;
public:
static void staticTracer(JavaObjectMethod* obj, word_t closure) {
+ mvm::Collector::markAndTrace(obj, &obj->clazz, closure);
mvm::Collector::markAndTrace(obj, &obj->name, closure);
- mvm::Collector::markAndTrace(obj, &obj->declaringClass, closure);
+ mvm::Collector::markAndTrace(obj, &obj->returnType, closure);
+ mvm::Collector::markAndTrace(obj, &obj->parameterTypes, closure);
+ mvm::Collector::markAndTrace(obj, &obj->exceptionTypes, closure);
+ mvm::Collector::markAndTrace(obj, &obj->Signature, closure);
+ mvm::Collector::markAndTrace(obj, &obj->genericInfo, closure);
+ mvm::Collector::markAndTrace(obj, &obj->annotations, closure);
+ mvm::Collector::markAndTrace(obj, &obj->parameterAnnotations, closure);
+ mvm::Collector::markAndTrace(obj, &obj->annotationDefault, closure);
+ mvm::Collector::markAndTrace(obj, &obj->methodAccessor, closure);
+ mvm::Collector::markAndTrace(obj, &obj->root, closure);
+ mvm::Collector::markAndTrace(obj, &obj->securityCheckCache, closure);
+ mvm::Collector::markAndTrace(obj, &obj->securityCheckTargetClassCache, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredAnnotations, closure);
}
static JavaMethod* getInternalMethod(JavaObjectMethod* self);
static UserClass* getClass(JavaObjectMethod* self) {
llvm_gcroot(self, 0);
- UserCommonClass* cls = JavaObjectClass::getClass(self->declaringClass);
+ UserCommonClass* cls = JavaObjectClass::getClass(self->clazz);
return cls->asClass();
}
@@ -114,51 +190,51 @@
class JavaObjectConstructor : public JavaObject {
private:
- uint8 flag;
- JavaObjectClass* declaringClass;
+ JavaObjectClass* clazz;
uint32 slot;
+ JavaObject* parameterTypes;
+ JavaObject* exceptionTypes;
+ uint32_t modifiers;
+ JavaString* signature;
+ JavaObject* genericInfo;
+ JavaObject* annotations;
+ JavaObject* parameterAnnotations;
+ JavaObject* securityCheckCache;
+ JavaObject* constructorAccessor;
+ JavaObject* root;
+ JavaObject* declaredAnnotations;
public:
static void staticTracer(JavaObjectConstructor* obj, word_t closure) {
- mvm::Collector::markAndTrace(obj, &obj->declaringClass, closure);
+ mvm::Collector::markAndTrace(obj, &obj->clazz, closure);
+ mvm::Collector::markAndTrace(obj, &obj->parameterTypes, closure);
+ mvm::Collector::markAndTrace(obj, &obj->exceptionTypes, closure);
+ mvm::Collector::markAndTrace(obj, &obj->signature, closure);
+ mvm::Collector::markAndTrace(obj, &obj->genericInfo, closure);
+ mvm::Collector::markAndTrace(obj, &obj->annotations, closure);
+ mvm::Collector::markAndTrace(obj, &obj->parameterAnnotations, closure);
+ mvm::Collector::markAndTrace(obj, &obj->securityCheckCache, closure);
+ mvm::Collector::markAndTrace(obj, &obj->constructorAccessor, closure);
+ mvm::Collector::markAndTrace(obj, &obj->root, closure);
+ mvm::Collector::markAndTrace(obj, &obj->declaredAnnotations, closure);
}
static JavaMethod* getInternalMethod(JavaObjectConstructor* self);
static UserClass* getClass(JavaObjectConstructor* self) {
llvm_gcroot(self, 0);
- UserCommonClass* cls = JavaObjectClass::getClass(self->declaringClass);
+ UserCommonClass* cls = JavaObjectClass::getClass(self->clazz);
return cls->asClass();
}
};
-class JavaObjectVMThread : public JavaObject {
-private:
- JavaObject* thread;
- bool running;
- JavaThread* vmdata;
-
-public:
- static void staticTracer(JavaObjectVMThread* obj, word_t closure) {
- mvm::Collector::markAndTrace(obj, &obj->thread, closure);
- }
-
- static void setVmdata(JavaObjectVMThread* vmthread,
- JavaThread* internal_thread) {
- llvm_gcroot(vmthread, 0);
- vmthread->vmdata = internal_thread;
- }
-
-};
-
-
class JavaObjectThrowable : public JavaObject {
private:
+ JavaObject* backtrace;
JavaObject* detailedMessage;
JavaObject* cause;
JavaObject* stackTrace;
- JavaObject* vmState;
public:
@@ -192,7 +268,8 @@
private:
JavaObject* referent;
JavaObject* queue;
- JavaObject* nextOnQueue;
+ JavaObject* next;
+ JavaObject* discovered;
public:
static void init(JavaObjectReference* self, JavaObject* r, JavaObject* q) {
More information about the vmkit-commits
mailing list