[vmkit-commits] [vmkit] r143428 - in /vmkit/trunk/lib/J3/ClassLib/OpenJDK: ClasspathReflect.h JavaUpcalls.cpp
Will Dietz
wdietz2 at illinois.edu
Mon Oct 31 21:03:26 PDT 2011
Author: wdietz2
Date: Mon Oct 31 23:03:26 2011
New Revision: 143428
URL: http://llvm.org/viewvc/llvm-project?rev=143428&view=rev
Log:
Add extra fields to JavaObjectClass to hold CommonClass and protection domain.
Modified:
vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h
vmkit/trunk/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp
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=143428&r1=143427&r2=143428&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h (original)
+++ vmkit/trunk/lib/J3/ClassLib/OpenJDK/ClasspathReflect.h Mon Oct 31 23:03:26 2011
@@ -15,6 +15,7 @@
#include "JavaClass.h"
#include "JavaObject.h"
#include "JavaThread.h"
+#include "JavaString.h"
namespace j3 {
@@ -38,30 +39,32 @@
JavaObject* annotations;
JavaObject* declaredAnnotations;
JavaObject* annotationType;
+ // Extra fields added by VM
+ UserCommonClass * internalClass;
+ JavaObject * pd;
public:
static UserCommonClass* getClass(JavaObjectClass* cl) {
llvm_gcroot(cl, 0);
- UNIMPLEMENTED();
- return NULL;
+ return cl->internalClass;
}
static void setClass(JavaObjectClass* cl, UserCommonClass* vmdata) {
llvm_gcroot(cl, 0);
- UNIMPLEMENTED();
+ cl->internalClass = vmdata;
}
static void setProtectionDomain(JavaObjectClass* cl, JavaObject* pd) {
llvm_gcroot(cl, 0);
llvm_gcroot(pd, 0);
- UNIMPLEMENTED();
+ mvm::Collector::objectReferenceWriteBarrier(
+ (gc*)cl, (gc**)&(cl->pd), (gc*)pd);
}
static JavaObject* getProtectionDomain(JavaObjectClass* cl) {
llvm_gcroot(cl, 0);
- UNIMPLEMENTED();
- return NULL;
+ return cl->pd;
}
static void staticTracer(JavaObjectClass* obj, word_t closure) {
Modified: vmkit/trunk/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp?rev=143428&r1=143427&r2=143428&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp Mon Oct 31 23:03:26 2011
@@ -468,6 +468,8 @@
newClass =
UPCALL_CLASS(loader, "java/lang/Class");
+ // Add space for extra fields, see ClasspathReflect.h
+ newClass->virtualSize += 2*sizeof(void*);
newThrowable =
UPCALL_CLASS(loader, "java/lang/Throwable");
More information about the vmkit-commits
mailing list