[vmkit-commits] [vmkit] r61494 - in /vmkit/trunk/lib/JnJVM: Classpath/ VMCore/

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Dec 30 06:01:45 PST 2008


Author: geoffray
Date: Tue Dec 30 08:01:37 2008
New Revision: 61494

URL: http://llvm.org/viewvc/llvm-project?rev=61494&view=rev
Log:
Code cleanup. Get rid of JavaBacktrace.cpp and NativeUtil.{h,cpp}
files.


Removed:
    vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp
    vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
    vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h
Modified:
    vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
    vmkit/trunk/lib/JnJVM/Classpath/Classpath.h.in
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaObject.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaObject.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaThread.h
    vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp

Modified: vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp Tue Dec 30 08:01:37 2008
@@ -14,7 +14,6 @@
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 
 using namespace jnjvm;
@@ -34,7 +33,8 @@
 
   verifyNull(Cl);
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, true);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, true);
   
   if (cl->isClass() && 
       cl->asClass()->lookupMethodDontThrow(vm->bootstrapLoader->clinitName,
@@ -225,7 +225,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, target, true);
+  UserClass* cl = 
+    (UserClass*)UserCommonClass::resolvedImplClass(vm, (JavaObject*)target, true);
   JavaObject* obj = cl->doNew(vm);
   JavaField* field = vm->upcalls->constructorSlot;
   JavaMethod* meth = (JavaMethod*)(field->getInt32Field((JavaObject*)cons));
@@ -249,7 +250,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* base = NativeUtil::resolvedImplClass(vm, arrayType, true);
+  UserCommonClass* base = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)arrayType, true);
   JnjvmClassLoader* loader = base->classLoader;
   const UTF8* name = base->getName();
   const UTF8* arrayName = loader->constructArrayName(1, name);

Modified: vmkit/trunk/lib/JnJVM/Classpath/Classpath.h.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/Classpath.h.in?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/Classpath.h.in (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/Classpath.h.in Tue Dec 30 08:01:37 2008
@@ -8,7 +8,12 @@
 //===----------------------------------------------------------------------===//
 
 
-const char* GNUClasspathLibs  =  "@classpathlibs@";
-const char* GNUClasspathGlibj =  "@classpathglibj@";
-const char* GNUClasspathVersion = "@classpathversion@";
+#define GNUClasspathLibs "@classpathlibs@";
+#define GNUClasspathGlibj "@classpathglibj@";
+#define GNUClasspathVersion "@classpathversion@";
 
+#ifdef NATIVE_JNI
+#define JNIEXPORT
+#else
+#include <jni.h>
+#endif

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp Tue Dec 30 08:01:37 2008
@@ -8,19 +8,16 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <cstring>
-
 #include "types.h"
 
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
 #include "JnjvmClassLoader.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 
@@ -32,8 +29,8 @@
 static UserClass* internalGetClass(Jnjvm* vm, JavaMethod* meth, jobject Meth) {
 #ifdef ISOLATE_SHARING
   JavaField* field = vm->upcalls->constructorClass;
-  jclass Cl = (jclass)field->getInt32Field((JavaObject*)Meth);
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, Cl, false);
+  JavaObject* Cl = (JavaObject*)field->getInt32Field((JavaObject*)Meth);
+  UserClass* cl = (UserClass*)UserCommonClass::resolvedImplClass(vm, Cl, false);
   return cl;
 #else
   return meth->classDef;
@@ -107,7 +104,8 @@
   void* startBuf = (void*)buf;
 
   if (nbArgs == size) {
-    UserCommonClass* _cl = NativeUtil::resolvedImplClass(vm, Clazz, false);
+    UserCommonClass* _cl = 
+      UserCommonClass::resolvedImplClass(vm, (JavaObject*)Clazz, false);
     UserClass* cl = _cl->asClass();
     if (cl) {
       cl->initialiseClass(vm);
@@ -118,7 +116,7 @@
       Typedef* const* arguments = sign->getArgumentsType();
       // Store the arguments, unboxing primitives if necessary.
       for (sint32 i = 0; i < size; ++i) {
-        NativeUtil::decapsulePrimitive(vm, buf, ptr[i], arguments[i]);
+        ptr[i]->decapsulePrimitive(vm, buf, arguments[i]);
       }
       
       JavaObject* excp = 0;

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp Tue Dec 30 08:01:37 2008
@@ -7,13 +7,12 @@
 //
 //===----------------------------------------------------------------------===//
 
-
+#include "Classpath.h"
 #include "JavaClass.h"
 #include "JavaThread.h"
 #include "JavaTypes.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 
@@ -23,8 +22,8 @@
 static UserClass* internalGetClass(Jnjvm* vm, JavaField* field, jobject Field) {
 #ifdef ISOLATE_SHARING
   JavaField* slot = vm->upcalls->fieldClass;
-  jclass Cl = (jclass)slot->getInt32Field((JavaObject*)Field);
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, Cl, false);
+  JavaObject* Cl = (JavaObject*)slot->getInt32Field((JavaObject*)Field);
+  UserClass* cl = (UserClass*)UserCommonClass::resolvedImplClass(vm, Cl, false);
   return cl;
 #else
   return field->classDef;
@@ -531,7 +530,7 @@
   uintptr_t buf = (uintptr_t)alloca(sizeof(uint64));
   void* _buf = (void*)buf;
   const Typedef* type = field->getSignature();
-  NativeUtil::decapsulePrimitive(vm, buf, (JavaObject*)val, type);
+  ((JavaObject*)val)->decapsulePrimitive(vm, buf, type);
 
   
   void* Obj = (void*)obj;

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp Tue Dec 30 08:01:37 2008
@@ -8,10 +8,9 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <cstring>
-
 #include "types.h"
 
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
@@ -20,7 +19,6 @@
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
 #include "JnjvmClassLoader.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 
@@ -32,8 +30,8 @@
 static UserClass* internalGetClass(Jnjvm* vm, JavaMethod* meth, jobject Meth) {
 #ifdef ISOLATE_SHARING
   JavaField* field = vm->upcalls->methodClass;
-  jclass Cl = (jclass)field->getInt32Field((JavaObject*)Meth);
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, Cl, false);
+  JavaObject* Cl = (JavaObject*)field->getInt32Field((JavaObject*)Meth);
+  UserClass* cl = (UserClass*)UserCommonClass::resolvedImplClass(vm, Cl, false);
   return cl;
 #else
   return meth->classDef;
@@ -129,7 +127,8 @@
   uintptr_t buf = (uintptr_t)alloca(size * sizeof(uint64)); 
   void* _buf = (void*)buf;
   if (nbArgs == size) {
-    UserCommonClass* _cl = NativeUtil::resolvedImplClass(vm, Cl, false);
+    UserCommonClass* _cl = 
+      UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
     UserClass* cl = (UserClass*)_cl;
     
     if (isVirtual(meth->access)) {
@@ -152,7 +151,7 @@
     JavaObject** ptr = (JavaObject**)(void*)(args->elements);
     Typedef* const* arguments = sign->getArgumentsType();
     for (sint32 i = 0; i < size; ++i) {
-      NativeUtil::decapsulePrimitive(vm, buf, ptr[i], arguments[i]);
+      ptr[i]->decapsulePrimitive(vm, buf, arguments[i]);
     }
     
     JavaObject* exc = 0;

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp Tue Dec 30 08:01:37 2008
@@ -7,23 +7,19 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <string.h>
-
 #include "types.h"
 
+#include "Classpath.h"
 #include "ClasspathReflect.h"
 #include "JavaAccess.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
-#include "JavaConstantPool.h"
 #include "JavaObject.h"
 #include "JavaString.h"
 #include "JavaTypes.h"
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
-#include "Reader.h"
 
 using namespace jnjvm;
 
@@ -88,7 +84,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
 
   if (cl->isArray() || cl->isInterface() || cl->isPrimitive()) {
     result = (jobject)vm->upcalls->constructorArrayClass->doNew(0, vm);
@@ -130,7 +127,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
   Classpath* upcalls = vm->upcalls;
 
   if (cl->isArray() || cl->isPrimitive()) {
@@ -175,7 +173,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
   res = cl->getAccess();
 
   END_NATIVE_EXCEPTION
@@ -237,7 +236,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
 
   res = cl->isInterface();
 
@@ -369,7 +369,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false)->asClass();
+  UserClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false)->asClass();
 
   if (!cl) {
     result = (jobject)vm->upcalls->fieldArrayClass->doNew(0, vm);
@@ -410,7 +411,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
   ArrayObject* ret = 
     (ArrayObject*)vm->upcalls->classArrayClass->doNew(cl->nbInterfaces, vm);
   for (uint16 i = 0; i < cl->nbInterfaces; ++i) {
@@ -436,7 +438,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false)->asClass();
+  UserClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false)->asClass();
   if (cl) {
     cl->resolveInnerOuterClasses();
     UserClass* outer = cl->getOuterClass();
@@ -464,7 +467,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = NativeUtil::resolvedImplClass(vm, Cl, false)->asClass();
+  UserClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false)->asClass();
   if (cl) {
     cl->resolveInnerOuterClasses();
     UserClassArray* array = vm->upcalls->constructorArrayClass;

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp Tue Dec 30 08:01:37 2008
@@ -7,19 +7,15 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <string.h>
-
 #include "types.h"
 
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
 #include "JavaString.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "Jnjvm.h"
-#include "LockedMap.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 
@@ -148,7 +144,7 @@
   
   verifyNull(Cl);
   Jnjvm* vm = JavaThread::get()->getJVM();
-  NativeUtil::resolvedImplClass(vm, Cl, false);
+  UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
 
   END_NATIVE_EXCEPTION
 }

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp Tue Dec 30 08:01:37 2008
@@ -7,17 +7,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <string.h>
-
 #include "types.h"
 
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp Tue Dec 30 08:01:37 2008
@@ -12,16 +12,14 @@
 
 #include "types.h"
 
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
 #include "JavaString.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "LockedMap.h"
-#include "NativeUtil.h"
 
 #include <cstring>
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp Tue Dec 30 08:01:37 2008
@@ -8,22 +8,16 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <cstring>
-
 #include "types.h"
 
-#include "mvm/JIT.h"
-
+#include "Classpath.h"
 #include "ClasspathReflect.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
-#include "JavaJIT.h"
 #include "JavaObject.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp Tue Dec 30 08:01:37 2008
@@ -7,17 +7,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <string.h>
-
 #include "types.h"
 
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp Tue Dec 30 08:01:37 2008
@@ -8,19 +8,17 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <cstring>
 #include <sys/utsname.h>
 
 #include "types.h"
 
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp Tue Dec 30 08:01:37 2008
@@ -7,21 +7,15 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <cstring>
-
 #include "types.h"
 
-#include "mvm/Threads/Thread.h"
-
+#include "Classpath.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
-#include "JavaJIT.h"
 #include "JavaObject.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp?rev=61494&r1=61493&r2=61494&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp Tue Dec 30 08:01:37 2008
@@ -7,25 +7,20 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <cstring>
 #include <vector>
 
 #include "types.h"
 
-#include "mvm/JIT.h"
-
+#include "Classpath.h"
 #include "JavaAccess.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaConstantPool.h"
-#include "JavaJIT.h"
 #include "JavaObject.h"
 #include "JavaString.h"
-#include "JavaTypes.h"
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 #include "Reader.h"
 
 using namespace jnjvm;

Removed: vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp?rev=61493&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp (removed)
@@ -1,146 +0,0 @@
-//===---------- JavaBacktrace.cpp - Backtrace utilities -------------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <cstdio>
-#include <dlfcn.h>
-
-#include "mvm/JIT.h"
-#include "mvm/Object.h"
-
-#include "JavaClass.h"
-#include "JavaJIT.h"
-#include "JavaThread.h"
-#include "Jnjvm.h"
-#include "JnjvmModule.h"
-#include "JnjvmModuleProvider.h"
-
-using namespace jnjvm;
-
-#if 0
-JavaMethod* JavaJIT::IPToJavaMethod(void* begIp) {
-  const llvm::Function* F = mvm::MvmModule::getCodeFromPointer(begIp);
-  if (F) {
-    JavaMethod* meth = LLVMMethodInfo::get(F);
-    return meth;
-  }
-  return 0;
-}
-
-void JavaJIT::printBacktrace() {
-  int* ips[100];
-  int real_size = mvm::MvmModule::getBacktrace((void**)(void*)ips, 100);
-  int n = 0;
-  while (n < real_size) {
-    JavaMethod* meth = IPToJavaMethod(ips[n++]);
-    if (meth) {
-      fprintf(stderr, "; %p in %s\n",  (void*)ips[n - 1], meth->printString());
-    } else {
-      Dl_info info;
-      int res = dladdr(ips[n++], &info);
-      if (res != 0) {
-        fprintf(stderr, "; %p in %s\n",  (void*)ips[n - 1], info.dli_sname);
-      } else {
-        fprintf(stderr, "; %p in Unknown\n", (void*)ips[n - 1]);
-      }
-    }
-  }
-}
-
-
-
-
-#ifndef ISOLATE_SHARING
-UserClass* JavaJIT::getCallingClass() {
-  int* ips[10];
-  int real_size = mvm::MvmModule::getBacktrace((void**)(void*)ips, 10);
-  int n = 0;
-  int i = 0;
-  while (n < real_size) {
-    JavaMethod* meth = IPToJavaMethod(ips[n++]);
-    if (meth) {
-      if (i == 1) {
-        return meth->classDef;
-      } else {
-        ++i;
-      }
-    }
-  }
-  return 0;
-}
-
-UserClass* JavaJIT::getCallingClassWalker() {
-  int* ips[10];
-  int real_size = mvm::MvmModule::getBacktrace((void**)(void*)ips, 10);
-  int n = 0;
-  int i = 0;
-  while (n < real_size) {
-    JavaMethod* meth = IPToJavaMethod(ips[n++]);
-    if (meth) {
-      if (i == 1) {
-        return meth->classDef;
-      } else {
-        ++i;
-      }
-    }
-  }
-  return 0;
-}
-#else
-
-UserClass* JavaJIT::getCallingClass() {
-  Class* res = 0;
-
-  int* ips[10];
-  int real_size = mvm::MvmModule::getBacktrace((void**)(void*)ips, 10);
-  int n = 0;
-  int i = 0;
-  while (n < real_size) {
-    JavaMethod* meth = IPToJavaMethod(ips[n++]);
-    if (meth) {
-      if (i == 1) {
-        res = meth->classDef;
-        break;
-      } else {
-        ++i;
-      }
-    }
-  }
-
-  if (!res) return 0;
-
-  unsigned int* top;
-  register unsigned int  **cur = ⊤
-  register unsigned int  **max = (unsigned int**)mvm::Thread::get()->baseSP;
-    
-  for(; cur<max; cur++) {
-    void* obj = (void*)(*cur);
-    obj = Collector::begOf(obj);
-    if (obj && ((mvm::Object*)obj)->getVirtualTable() == UserConstantPool::VT) {
-      UserConstantPool* ctp = (UserConstantPool*)obj;
-      UserClass* cl = ctp->getClass();
-      if (cl->classDef == res) {
-        return cl;
-      }
-    }
-  }
-  return 0;
-}
-
-UserClass* JavaJIT::getCallingClassWalker() {
-  return getCallingClass();
-}
-#endif
-
-JavaObject* JavaJIT::getCallingClassLoader() {
-  UserClass* cl = getCallingClassWalker();
-  if (!cl) return 0;
-  else return cl->classLoader->getJavaClassLoader();
-}
-
-#endif

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Tue Dec 30 08:01:37 2008
@@ -17,6 +17,7 @@
 #include "debug.h"
 #include "types.h"
 
+#include "ClasspathReflect.h"
 #include "JavaArray.h"
 #include "JavaCache.h"
 #include "JavaClass.h"
@@ -1070,3 +1071,132 @@
 }
 
 #endif
+
+
+
+UserCommonClass* UserCommonClass::resolvedImplClass(Jnjvm* vm,
+                                                    JavaObject* clazz,
+                                                    bool doClinit) {
+  UserCommonClass* cl = ((JavaObjectClass*)clazz)->getClass();
+  if (cl->asClass()) {
+    cl->asClass()->resolveClass();
+    if (doClinit) cl->asClass()->initialiseClass(vm);
+  }
+  return cl;
+}
+
+void JavaMethod::jniConsFromMeth(char* buf) const {
+  const UTF8* jniConsClName = classDef->name;
+  const UTF8* jniConsName = name;
+  sint32 clen = jniConsClName->size;
+  sint32 mnlen = jniConsName->size;
+
+  uint32 cur = 0;
+  char* ptr = &(buf[JNI_NAME_PRE_LEN]);
+  
+  memcpy(buf, JNI_NAME_PRE, JNI_NAME_PRE_LEN);
+  
+  for (sint32 i =0; i < clen; ++i) {
+    cur = jniConsClName->elements[i];
+    if (cur == '/') ptr[0] = '_';
+    else if (cur == '_') {
+      ptr[0] = '_';
+      ptr[1] = '1';
+      ++ptr;
+    }
+    else ptr[0] = (uint8)cur;
+    ++ptr;
+  }
+  
+  ptr[0] = '_';
+  ++ptr;
+  
+  for (sint32 i =0; i < mnlen; ++i) {
+    cur = jniConsName->elements[i];
+    if (cur == '/') ptr[0] = '_';
+    else if (cur == '_') {
+      ptr[0] = '_';
+      ptr[1] = '1';
+      ++ptr;
+    }
+    else ptr[0] = (uint8)cur;
+    ++ptr;
+  }
+  
+  ptr[0] = 0;
+
+
+}
+
+void JavaMethod::jniConsFromMethOverloaded(char* buf) const {
+  const UTF8* jniConsClName = classDef->name;
+  const UTF8* jniConsName = name;
+  const UTF8* jniConsType = type;
+  sint32 clen = jniConsClName->size;
+  sint32 mnlen = jniConsName->size;
+
+  uint32 cur = 0;
+  char* ptr = &(buf[JNI_NAME_PRE_LEN]);
+  
+  memcpy(buf, JNI_NAME_PRE, JNI_NAME_PRE_LEN);
+  
+  for (sint32 i =0; i < clen; ++i) {
+    cur = jniConsClName->elements[i];
+    if (cur == '/') ptr[0] = '_';
+    else if (cur == '_') {
+      ptr[0] = '_';
+      ptr[1] = '1';
+      ++ptr;
+    }
+    else ptr[0] = (uint8)cur;
+    ++ptr;
+  }
+  
+  ptr[0] = '_';
+  ++ptr;
+
+  for (sint32 i =0; i < mnlen; ++i) {
+    cur = jniConsName->elements[i];
+    if (cur == '/') ptr[0] = '_';
+    else if (cur == '_') {
+      ptr[0] = '_';
+      ptr[1] = '1';
+      ++ptr;
+    }
+    else ptr[0] = (uint8)cur;
+    ++ptr;
+  }
+  
+  sint32 i = 0;
+  while (i < jniConsType->size) {
+    char c = jniConsType->elements[i++];
+    if (c == I_PARG) {
+      ptr[0] = '_';
+      ptr[1] = '_';
+      ptr += 2;
+    } else if (c == '/') {
+      ptr[0] = '_';
+      ++ptr;
+    } else if (c == '_') {
+      ptr[0] = '_';
+      ptr[1] = '1';
+      ptr += 2;
+    } else if (c == I_END_REF) {
+      ptr[0] = '_';
+      ptr[1] = '2';
+      ptr += 2;
+    } else if (c == I_TAB) {
+      ptr[0] = '_';
+      ptr[1] = '3';
+      ptr += 2;
+    } else if (c == I_PARD) {
+      break;
+    } else {
+      ptr[0] = c;
+      ++ptr;
+    }
+  }
+
+  ptr[0] = 0;
+
+}

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Tue Dec 30 08:01:37 2008
@@ -354,7 +354,12 @@
   JavaObject* getDelegatee();
 #endif
 #endif
-
+  
+  /// resolvedImplClass - Return the internal representation of the
+  /// java.lang.Class object. The class must be resolved.
+  //
+  static UserCommonClass* resolvedImplClass(Jnjvm* vm, JavaObject* delegatee,
+                                            bool doClinit);
 };
 
 /// ClassPrimitive - This class represents internal classes for primitive

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Tue Dec 30 08:01:37 2008
@@ -38,7 +38,6 @@
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
 #include "JnjvmModuleProvider.h"
-#include "NativeUtil.h"
 #include "Reader.h"
 #include "Zip.h"
 

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaObject.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaObject.cpp Tue Dec 30 08:01:37 2008
@@ -15,6 +15,7 @@
 #include "JavaClass.h"
 #include "JavaObject.h"
 #include "JavaThread.h"
+#include "JavaUpcalls.h"
 #include "Jnjvm.h"
 
 using namespace jnjvm;
@@ -152,3 +153,146 @@
     JavaThread::get()->getJVM()->illegalMonitorStateException(this);
   } 
 }
+
+void JavaObject::decapsulePrimitive(Jnjvm *vm, uintptr_t &buf,
+                                    const Typedef* signature) {
+
+  JavaObject* obj = this;
+  if (!signature->isPrimitive()) {
+    if (obj && !(obj->classOf->isOfTypeName(vm, signature->getName()))) {
+      vm->illegalArgumentException("wrong type argument");
+    }
+    ((JavaObject**)buf)[0] = obj;
+    buf += 8;
+    return;
+  } else if (obj == 0) {
+    vm->illegalArgumentException("");
+  } else {
+    UserCommonClass* cl = obj->classOf;
+    UserClassPrimitive* value = cl->toPrimitive(vm);
+    PrimitiveTypedef* prim = (PrimitiveTypedef*)signature;
+
+    if (value == 0) {
+      vm->illegalArgumentException("");
+    }
+    
+    if (prim->isShort()) {
+      if (value == vm->upcalls->OfShort) {
+        ((uint16*)buf)[0] = vm->upcalls->shortValue->getInt16Field(obj);
+        buf += 8;
+        return;
+      } else if (value == vm->upcalls->OfByte) {
+        ((sint16*)buf)[0] = 
+          (sint16)vm->upcalls->byteValue->getInt8Field(obj);
+        buf += 8;
+        return;
+      } else {
+        vm->illegalArgumentException("");
+      }
+    } else if (prim->isByte()) {
+      if (value == vm->upcalls->OfByte) {
+        ((uint8*)buf)[0] = vm->upcalls->byteValue->getInt8Field(obj);
+        buf += 8;
+        return;
+      } else {
+        vm->illegalArgumentException("");
+      }
+    } else if (prim->isBool()) {
+      if (value == vm->upcalls->OfBool) {
+        ((uint8*)buf)[0] = vm->upcalls->boolValue->getInt8Field(obj);
+        buf += 8;
+        return;
+      } else {
+        vm->illegalArgumentException("");
+      }
+    } else if (prim->isInt()) {
+      sint32 val = 0;
+      if (value == vm->upcalls->OfInt) {
+        val = vm->upcalls->intValue->getInt32Field(obj);
+      } else if (value == vm->upcalls->OfByte) {
+        val = (sint32)vm->upcalls->byteValue->getInt8Field(obj);
+      } else if (value == vm->upcalls->OfChar) {
+        val = (uint32)vm->upcalls->charValue->getInt16Field(obj);
+      } else if (value == vm->upcalls->OfShort) {
+        val = (sint32)vm->upcalls->shortValue->getInt16Field(obj);
+      } else {
+        vm->illegalArgumentException("");
+      }
+      ((sint32*)buf)[0] = val;
+      buf += 8;
+      return;
+    } else if (prim->isChar()) {
+      uint16 val = 0;
+      if (value == vm->upcalls->OfChar) {
+        val = (uint16)vm->upcalls->charValue->getInt16Field(obj);
+      } else {
+        vm->illegalArgumentException("");
+      }
+      ((uint16*)buf)[0] = val;
+      buf += 8;
+      return;
+    } else if (prim->isFloat()) {
+      float val = 0;
+      if (value == vm->upcalls->OfFloat) {
+        val = (float)vm->upcalls->floatValue->getFloatField(obj);
+      } else if (value == vm->upcalls->OfByte) {
+        val = (float)(sint32)vm->upcalls->byteValue->getInt8Field(obj);
+      } else if (value == vm->upcalls->OfChar) {
+        val = (float)(uint32)vm->upcalls->charValue->getInt16Field(obj);
+      } else if (value == vm->upcalls->OfShort) {
+        val = (float)(sint32)vm->upcalls->shortValue->getInt16Field(obj);
+      } else if (value == vm->upcalls->OfInt) {
+        val = (float)(sint32)vm->upcalls->intValue->getInt32Field(obj);
+      } else if (value == vm->upcalls->OfLong) {
+        val = (float)vm->upcalls->longValue->getLongField(obj);
+      } else {
+        vm->illegalArgumentException("");
+      }
+      ((float*)buf)[0] = val;
+      buf += 8;
+      return;
+    } else if (prim->isDouble()) {
+      double val = 0;
+      if (value == vm->upcalls->OfDouble) {
+        val = (double)vm->upcalls->doubleValue->getDoubleField(obj);
+      } else if (value == vm->upcalls->OfFloat) {
+        val = (double)vm->upcalls->floatValue->getFloatField(obj);
+      } else if (value == vm->upcalls->OfByte) {
+        val = (double)(sint64)vm->upcalls->byteValue->getInt8Field(obj);
+      } else if (value == vm->upcalls->OfChar) {
+        val = (double)(uint64)vm->upcalls->charValue->getInt16Field(obj);
+      } else if (value == vm->upcalls->OfShort) {
+        val = (double)(sint16)vm->upcalls->shortValue->getInt16Field(obj);
+      } else if (value == vm->upcalls->OfInt) {
+        val = (double)(sint32)vm->upcalls->intValue->getInt32Field(obj);
+      } else if (value == vm->upcalls->OfLong) {
+        val = (double)(sint64)vm->upcalls->longValue->getLongField(obj);
+      } else {
+        vm->illegalArgumentException("");
+      }
+      ((double*)buf)[0] = val;
+      buf += 8;
+      return;
+    } else if (prim->isLong()) {
+      sint64 val = 0;
+      if (value == vm->upcalls->OfByte) {
+        val = (sint64)vm->upcalls->byteValue->getInt8Field(obj);
+      } else if (value == vm->upcalls->OfChar) {
+        val = (sint64)(uint64)vm->upcalls->charValue->getInt16Field(obj);
+      } else if (value == vm->upcalls->OfShort) {
+        val = (sint64)vm->upcalls->shortValue->getInt16Field(obj);
+      } else if (value == vm->upcalls->OfInt) {
+        val = (sint64)vm->upcalls->intValue->getInt32Field(obj);
+      } else if (value == vm->upcalls->OfLong) {
+        val = (sint64)vm->upcalls->intValue->getLongField(obj);
+      } else {
+        vm->illegalArgumentException("");
+      }
+      ((sint64*)buf)[0] = val;
+      buf += 8;
+      return;
+    }
+  }
+  // can not be here
+  return;
+}

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaObject.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaObject.h Tue Dec 30 08:01:37 2008
@@ -204,6 +204,12 @@
   LockObj* lockObj() {
     return lock.getFatLock();
   }
+
+  /// decapsulePrimitive - Based on the signature argument, decapsule
+  /// obj as a primitive and put it in the buffer.
+  ///
+  void decapsulePrimitive(Jnjvm* vm, uintptr_t &buf, const Typedef* signature);
+
 };
 
 

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp Tue Dec 30 08:01:37 2008
@@ -23,7 +23,6 @@
 #include "JavaTypes.h"
 #include "Jnjvm.h"
 #include "LockedMap.h"
-#include "NativeUtil.h"
 
 using namespace jnjvm;
 

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaThread.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaThread.h Tue Dec 30 08:01:37 2008
@@ -25,6 +25,36 @@
 class JavaObject;
 class Jnjvm;
 
+
+#define BEGIN_NATIVE_EXCEPTION(level) \
+  JavaThread* __th = JavaThread::get(); \
+  __th->startNative(level); \
+  bool __exc = false; \
+  try {
+
+#define END_NATIVE_EXCEPTION \
+  } catch(...) { \
+    __exc = true; \
+  } \
+  if (__exc) { \
+    __th->throwFromNative(); \
+  } \
+  __th->endNative();
+
+#define BEGIN_JNI_EXCEPTION \
+  JavaThread* th = JavaThread::get(); \
+  bool __exc = 0; \
+  try {
+
+#define END_JNI_EXCEPTION \
+  } catch(...) { \
+    __exc = true; \
+  } \
+  if (__exc) { \
+    th->throwFromJNI(); \
+  }
+
+
 /// JavaThread - This class is the internal representation of a Java thread.
 /// It maintains thread-specific information such as its state, the current
 /// exception if there is one, the layout of the stack, etc.

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp Tue Dec 30 08:01:37 2008
@@ -18,11 +18,14 @@
 #include "JavaTypes.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "NativeUtil.h"
 
 
 using namespace jnjvm;
-  
+
+static Jnjvm* myVM(JNIEnv* env) {
+  return JavaThread::get()->getJVM();
+}
+
 static UserClass* getClassFromStaticMethod(Jnjvm* vm, JavaMethod* meth,
                                            jclass clazz) {
 #ifdef ISOLATE_SHARING
@@ -83,7 +86,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   Classpath* upcalls = vm->upcalls;
   JavaObject* meth = (JavaObject*)method;
   UserCommonClass* cl = meth->classOf;
@@ -113,8 +116,10 @@
   BEGIN_JNI_EXCEPTION
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl2 = NativeUtil::resolvedImplClass(vm, sup, false);
-  UserCommonClass* cl1 = NativeUtil::resolvedImplClass(vm, sub, false);
+  UserCommonClass* cl2 = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)sup, false);
+  UserCommonClass* cl1 = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)sub, false);
 
   return cl1->isAssignableFrom(cl2);
   
@@ -134,9 +139,10 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   verifyNull(Cl);
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, true);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, true);
   if (!cl->asClass()) assert(0 && "implement me");
   UserClass* realCl = cl->asClass();
   JavaObject* res = realCl->doNew(vm);
@@ -211,7 +217,8 @@
   BEGIN_JNI_EXCEPTION
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   if (cl->isArray()) JavaThread::get()->getJVM()->unknownError("implement me");
   return (jobject)((UserClass*)cl)->doNew(JavaThread::get()->getJVM());
 
@@ -227,7 +234,8 @@
   va_start(ap, methodID);
   JavaMethod* meth = (JavaMethod*)methodID;
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   JavaObject* res = cl->doNew(vm);
   meth->invokeIntSpecialAP(vm, cl, res, ap);
   va_end(ap);
@@ -251,7 +259,8 @@
   
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaMethod* meth = (JavaMethod*)methodID;
-  Class* cl = (Class*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   JavaObject* res = cl->doNew(vm);
   meth->invokeIntSpecialBuf(vm, cl, res, (void*)args);
   return (jobject)res; 
@@ -306,7 +315,7 @@
   BEGIN_JNI_EXCEPTION
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   const UTF8* name = vm->asciizToInternalUTF8(aname);
   const UTF8* type = vm->asciizToInternalUTF8(atype);
   JavaMethod* meth = cl->asClass() ? 
@@ -930,7 +939,8 @@
   BEGIN_JNI_EXCEPTION
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   return (jfieldID) (cl->asClass() ? 
     cl->asClass()->lookupField(vm->asciizToUTF8(name),
                                vm->asciizToUTF8(sig), 0, 1,
@@ -1174,7 +1184,8 @@
   BEGIN_JNI_EXCEPTION
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   const UTF8* name = vm->asciizToInternalUTF8(aname);
   const UTF8* type = vm->asciizToInternalUTF8(atype);
   JavaMethod* meth = cl->asClass() ? 
@@ -1595,7 +1606,8 @@
   BEGIN_JNI_EXCEPTION
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   return (jfieldID) (cl->asClass() ? 
     cl->asClass()->lookupField(vm->asciizToUTF8(name),
                                vm->asciizToUTF8(sig),
@@ -1612,7 +1624,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jobject)field->getObjectField(Stat);
 
@@ -1627,7 +1640,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jboolean)field->getInt8Field(Stat);
 
@@ -1642,7 +1656,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jbyte)field->getInt8Field(Stat);
 
@@ -1657,7 +1672,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jchar)field->getInt16Field(Stat);
 
@@ -1672,7 +1688,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jshort)field->getInt16Field(Stat);
 
@@ -1687,7 +1704,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jint)field->getInt32Field(Stat);
 
@@ -1702,7 +1720,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jlong)field->getLongField(Stat);
 
@@ -1717,7 +1736,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jfloat)field->getFloatField(Stat);
 
@@ -1732,7 +1752,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   return (jdouble)field->getDoubleField(Stat);
 
@@ -1748,7 +1769,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setObjectField(Stat, (JavaObject*)value);
   
@@ -1763,7 +1785,8 @@
   
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setInt8Field(Stat, (uint8)value);
 
@@ -1778,7 +1801,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setInt8Field(Stat, (sint8)value);
 
@@ -1793,7 +1817,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setInt16Field(Stat, (uint16)value);
 
@@ -1808,7 +1833,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setInt16Field(Stat, (sint16)value);
 
@@ -1823,7 +1849,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setInt32Field(Stat, (sint32)value);
 
@@ -1838,7 +1865,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setLongField(Stat, (sint64)value);
 
@@ -1853,7 +1881,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setFloatField(Stat, (float)value);
 
@@ -1868,7 +1897,8 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(vm, clazz, true);
+  UserClass* cl = (UserClass*)
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)clazz, true);
   void* Stat = cl->getStaticInstance();
   field->setDoubleField(Stat, (double)value);
 
@@ -1903,7 +1933,7 @@
 
   BEGIN_JNI_EXCEPTION
 
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jstring)(vm->asciizToStr(bytes));
 
   END_JNI_EXCEPTION
@@ -1948,10 +1978,11 @@
 jobjectArray NewObjectArray(JNIEnv *env, jsize length, jclass elementClass,
                             jobject initialElement) {
   BEGIN_JNI_EXCEPTION
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   if (length < 0) vm->negativeArraySizeException(length);
   
-  UserCommonClass* base = NativeUtil::resolvedImplClass(vm, elementClass, true);
+  UserCommonClass* base = 
+    UserCommonClass::resolvedImplClass(vm, (JavaObject*)elementClass, true);
   JnjvmClassLoader* loader = base->classLoader;
   const UTF8* name = base->getName();
   const UTF8* arrayName = loader->constructArrayName(1, name);
@@ -2000,7 +2031,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jbooleanArray)vm->upcalls->ArrayOfByte->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2012,7 +2043,7 @@
   
   BEGIN_JNI_EXCEPTION
 
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jbyteArray)vm->upcalls->ArrayOfByte->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2024,7 +2055,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jcharArray)vm->upcalls->ArrayOfChar->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2036,7 +2067,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jshortArray)vm->upcalls->ArrayOfShort->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2048,7 +2079,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jintArray)vm->upcalls->ArrayOfInt->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2060,7 +2091,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jlongArray)vm->upcalls->ArrayOfLong->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2072,7 +2103,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jfloatArray)vm->upcalls->ArrayOfFloat->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2084,7 +2115,7 @@
   
   BEGIN_JNI_EXCEPTION
   
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   return (jdoubleArray)vm->upcalls->ArrayOfDouble->doNew(len, vm);
 
   END_JNI_EXCEPTION
@@ -2441,7 +2472,7 @@
 
 
 jobject NewGlobalRef(JNIEnv* env, jobject obj) {
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   vm->globalRefsLock.lock();
   vm->globalRefs.push_back((JavaObject*)obj);
   vm->globalRefsLock.unlock();
@@ -2450,7 +2481,7 @@
 
 
 void DeleteGlobalRef(JNIEnv* env, jobject globalRef) {
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   vm->globalRefsLock.lock();
   for (std::vector<JavaObject*, gc_allocator<JavaObject*> >::iterator i =
                                                       vm->globalRefs.begin(),
@@ -2480,7 +2511,7 @@
 
   BEGIN_JNI_EXCEPTION
 
-  Jnjvm* vm = NativeUtil::myVM(env);
+  Jnjvm* vm = myVM(env);
   JavaObject* buf = (JavaObject*)_buf;
   JavaObject* address = vm->upcalls->bufferAddress->getObjectField(buf);
   if (address != 0) {

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Tue Dec 30 08:01:37 2008
@@ -31,6 +31,7 @@
 
 #include "mvm/Allocator.h"
 
+#include "Classpath.h"
 #include "ClasspathReflect.h"
 #include "JavaClass.h"
 #include "JavaConstantPool.h"
@@ -45,9 +46,6 @@
 
 using namespace jnjvm;
 
-extern const char* GNUClasspathGlibj;
-extern const char* GNUClasspathLibs;
-
 JnjvmBootstrapLoader::JnjvmBootstrapLoader(bool staticCompilation) {
   
   TheModule = new JnjvmModule("Bootstrap JnJVM", staticCompilation);

Removed: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp?rev=61493&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp (removed)
@@ -1,301 +0,0 @@
-//===------ NativeUtil.cpp - Methods to call native functions -------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-
-#include "ClasspathReflect.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaConstantPool.h"
-#include "JavaJIT.h"
-#include "JavaThread.h"
-#include "JavaTypes.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-#include "JnjvmClassLoader.h"
-#include "NativeUtil.h"
-#include "Reader.h"
-
-#include <cstdlib>
-#include <cstring>
-
-using namespace jnjvm;
-
-Jnjvm* NativeUtil::myVM(JNIEnv* env) {
-  return JavaThread::get()->getJVM();
-}
-
-void JavaMethod::jniConsFromMeth(char* buf) const {
-  const UTF8* jniConsClName = classDef->name;
-  const UTF8* jniConsName = name;
-  sint32 clen = jniConsClName->size;
-  sint32 mnlen = jniConsName->size;
-
-  uint32 cur = 0;
-  char* ptr = &(buf[JNI_NAME_PRE_LEN]);
-  
-  memcpy(buf, JNI_NAME_PRE, JNI_NAME_PRE_LEN);
-  
-  for (sint32 i =0; i < clen; ++i) {
-    cur = jniConsClName->elements[i];
-    if (cur == '/') ptr[0] = '_';
-    else if (cur == '_') {
-      ptr[0] = '_';
-      ptr[1] = '1';
-      ++ptr;
-    }
-    else ptr[0] = (uint8)cur;
-    ++ptr;
-  }
-  
-  ptr[0] = '_';
-  ++ptr;
-  
-  for (sint32 i =0; i < mnlen; ++i) {
-    cur = jniConsName->elements[i];
-    if (cur == '/') ptr[0] = '_';
-    else if (cur == '_') {
-      ptr[0] = '_';
-      ptr[1] = '1';
-      ++ptr;
-    }
-    else ptr[0] = (uint8)cur;
-    ++ptr;
-  }
-  
-  ptr[0] = 0;
-
-
-}
-
-void JavaMethod::jniConsFromMethOverloaded(char* buf) const {
-  const UTF8* jniConsClName = classDef->name;
-  const UTF8* jniConsName = name;
-  const UTF8* jniConsType = type;
-  sint32 clen = jniConsClName->size;
-  sint32 mnlen = jniConsName->size;
-
-  uint32 cur = 0;
-  char* ptr = &(buf[JNI_NAME_PRE_LEN]);
-  
-  memcpy(buf, JNI_NAME_PRE, JNI_NAME_PRE_LEN);
-  
-  for (sint32 i =0; i < clen; ++i) {
-    cur = jniConsClName->elements[i];
-    if (cur == '/') ptr[0] = '_';
-    else if (cur == '_') {
-      ptr[0] = '_';
-      ptr[1] = '1';
-      ++ptr;
-    }
-    else ptr[0] = (uint8)cur;
-    ++ptr;
-  }
-  
-  ptr[0] = '_';
-  ++ptr;
-
-  for (sint32 i =0; i < mnlen; ++i) {
-    cur = jniConsName->elements[i];
-    if (cur == '/') ptr[0] = '_';
-    else if (cur == '_') {
-      ptr[0] = '_';
-      ptr[1] = '1';
-      ++ptr;
-    }
-    else ptr[0] = (uint8)cur;
-    ++ptr;
-  }
-  
-  sint32 i = 0;
-  while (i < jniConsType->size) {
-    char c = jniConsType->elements[i++];
-    if (c == I_PARG) {
-      ptr[0] = '_';
-      ptr[1] = '_';
-      ptr += 2;
-    } else if (c == '/') {
-      ptr[0] = '_';
-      ++ptr;
-    } else if (c == '_') {
-      ptr[0] = '_';
-      ptr[1] = '1';
-      ptr += 2;
-    } else if (c == I_END_REF) {
-      ptr[0] = '_';
-      ptr[1] = '2';
-      ptr += 2;
-    } else if (c == I_TAB) {
-      ptr[0] = '_';
-      ptr[1] = '3';
-      ptr += 2;
-    } else if (c == I_PARD) {
-      break;
-    } else {
-      ptr[0] = c;
-      ++ptr;
-    }
-  }
-
-  ptr[0] = 0;
-
-
-}
-
-UserCommonClass* NativeUtil::resolvedImplClass(Jnjvm* vm, jclass clazz,
-                                               bool doClinit) {
-  UserCommonClass* cl = ((JavaObjectClass*)clazz)->getClass();
-  if (cl->asClass()) {
-    cl->asClass()->resolveClass();
-    if (doClinit) cl->asClass()->initialiseClass(vm);
-  }
-  return cl;
-}
-
-void NativeUtil::decapsulePrimitive(Jnjvm *vm, uintptr_t &buf,
-                                    JavaObject* obj,
-                                    const Typedef* signature) {
-
-  if (!signature->isPrimitive()) {
-    if (obj && !(obj->classOf->isOfTypeName(vm, signature->getName()))) {
-      vm->illegalArgumentException("wrong type argument");
-    }
-    ((JavaObject**)buf)[0] = obj;
-    buf += 8;
-    return;
-  } else if (obj == 0) {
-    vm->illegalArgumentException("");
-  } else {
-    UserCommonClass* cl = obj->classOf;
-    UserClassPrimitive* value = cl->toPrimitive(vm);
-    PrimitiveTypedef* prim = (PrimitiveTypedef*)signature;
-
-    if (value == 0) {
-      vm->illegalArgumentException("");
-    }
-    
-    if (prim->isShort()) {
-      if (value == vm->upcalls->OfShort) {
-        ((uint16*)buf)[0] = vm->upcalls->shortValue->getInt16Field(obj);
-        buf += 8;
-        return;
-      } else if (value == vm->upcalls->OfByte) {
-        ((sint16*)buf)[0] = 
-          (sint16)vm->upcalls->byteValue->getInt8Field(obj);
-        buf += 8;
-        return;
-      } else {
-        vm->illegalArgumentException("");
-      }
-    } else if (prim->isByte()) {
-      if (value == vm->upcalls->OfByte) {
-        ((uint8*)buf)[0] = vm->upcalls->byteValue->getInt8Field(obj);
-        buf += 8;
-        return;
-      } else {
-        vm->illegalArgumentException("");
-      }
-    } else if (prim->isBool()) {
-      if (value == vm->upcalls->OfBool) {
-        ((uint8*)buf)[0] = vm->upcalls->boolValue->getInt8Field(obj);
-        buf += 8;
-        return;
-      } else {
-        vm->illegalArgumentException("");
-      }
-    } else if (prim->isInt()) {
-      sint32 val = 0;
-      if (value == vm->upcalls->OfInt) {
-        val = vm->upcalls->intValue->getInt32Field(obj);
-      } else if (value == vm->upcalls->OfByte) {
-        val = (sint32)vm->upcalls->byteValue->getInt8Field(obj);
-      } else if (value == vm->upcalls->OfChar) {
-        val = (uint32)vm->upcalls->charValue->getInt16Field(obj);
-      } else if (value == vm->upcalls->OfShort) {
-        val = (sint32)vm->upcalls->shortValue->getInt16Field(obj);
-      } else {
-        vm->illegalArgumentException("");
-      }
-      ((sint32*)buf)[0] = val;
-      buf += 8;
-      return;
-    } else if (prim->isChar()) {
-      uint16 val = 0;
-      if (value == vm->upcalls->OfChar) {
-        val = (uint16)vm->upcalls->charValue->getInt16Field(obj);
-      } else {
-        vm->illegalArgumentException("");
-      }
-      ((uint16*)buf)[0] = val;
-      buf += 8;
-      return;
-    } else if (prim->isFloat()) {
-      float val = 0;
-      if (value == vm->upcalls->OfFloat) {
-        val = (float)vm->upcalls->floatValue->getFloatField(obj);
-      } else if (value == vm->upcalls->OfByte) {
-        val = (float)(sint32)vm->upcalls->byteValue->getInt8Field(obj);
-      } else if (value == vm->upcalls->OfChar) {
-        val = (float)(uint32)vm->upcalls->charValue->getInt16Field(obj);
-      } else if (value == vm->upcalls->OfShort) {
-        val = (float)(sint32)vm->upcalls->shortValue->getInt16Field(obj);
-      } else if (value == vm->upcalls->OfInt) {
-        val = (float)(sint32)vm->upcalls->intValue->getInt32Field(obj);
-      } else if (value == vm->upcalls->OfLong) {
-        val = (float)vm->upcalls->longValue->getLongField(obj);
-      } else {
-        vm->illegalArgumentException("");
-      }
-      ((float*)buf)[0] = val;
-      buf += 8;
-      return;
-    } else if (prim->isDouble()) {
-      double val = 0;
-      if (value == vm->upcalls->OfDouble) {
-        val = (double)vm->upcalls->doubleValue->getDoubleField(obj);
-      } else if (value == vm->upcalls->OfFloat) {
-        val = (double)vm->upcalls->floatValue->getFloatField(obj);
-      } else if (value == vm->upcalls->OfByte) {
-        val = (double)(sint64)vm->upcalls->byteValue->getInt8Field(obj);
-      } else if (value == vm->upcalls->OfChar) {
-        val = (double)(uint64)vm->upcalls->charValue->getInt16Field(obj);
-      } else if (value == vm->upcalls->OfShort) {
-        val = (double)(sint16)vm->upcalls->shortValue->getInt16Field(obj);
-      } else if (value == vm->upcalls->OfInt) {
-        val = (double)(sint32)vm->upcalls->intValue->getInt32Field(obj);
-      } else if (value == vm->upcalls->OfLong) {
-        val = (double)(sint64)vm->upcalls->longValue->getLongField(obj);
-      } else {
-        vm->illegalArgumentException("");
-      }
-      ((double*)buf)[0] = val;
-      buf += 8;
-      return;
-    } else if (prim->isLong()) {
-      sint64 val = 0;
-      if (value == vm->upcalls->OfByte) {
-        val = (sint64)vm->upcalls->byteValue->getInt8Field(obj);
-      } else if (value == vm->upcalls->OfChar) {
-        val = (sint64)(uint64)vm->upcalls->charValue->getInt16Field(obj);
-      } else if (value == vm->upcalls->OfShort) {
-        val = (sint64)vm->upcalls->shortValue->getInt16Field(obj);
-      } else if (value == vm->upcalls->OfInt) {
-        val = (sint64)vm->upcalls->intValue->getInt32Field(obj);
-      } else if (value == vm->upcalls->OfLong) {
-        val = (sint64)vm->upcalls->intValue->getLongField(obj);
-      } else {
-        vm->illegalArgumentException("");
-      }
-      ((sint64*)buf)[0] = val;
-      buf += 8;
-      return;
-    }
-  }
-  // can not be here
-  return;
-}

Removed: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h?rev=61493&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h (removed)
@@ -1,79 +0,0 @@
-//===------- NativeUtil.h - Methods to call native functions --------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef JNJVM_NATIVE_UTIL_H
-#define JNJVM_NATIVE_UTIL_H
-
-#include <jni.h>
-
-namespace jnjvm {
-
-class ArrayObject;
-class JavaMethod;
-class JavaObject;
-class Jnjvm;
-class JnjvmClassLoader;
-class Typedef;
-
-
-#define BEGIN_NATIVE_EXCEPTION(level) \
-  JavaThread* __th = JavaThread::get(); \
-  __th->startNative(level); \
-  bool __exc = false; \
-  try {
-
-#define END_NATIVE_EXCEPTION \
-  } catch(...) { \
-    __exc = true; \
-  } \
-  if (__exc) { \
-    __th->throwFromNative(); \
-  } \
-  __th->endNative();
-
-#define BEGIN_JNI_EXCEPTION \
-  JavaThread* th = JavaThread::get(); \
-  bool __exc = 0; \
-  try {
-
-#define END_JNI_EXCEPTION \
-  } catch(...) { \
-    __exc = true; \
-  } \
-  if (__exc) { \
-    th->throwFromJNI(); \
-  }
-
-/// NativeUtil - This class groups a set of static function useful when dealing
-/// with Java objects in native code.
-///
-class NativeUtil {
-public:
-
-  /// myVM - Get the current virtual machine.
-  ///
-  static Jnjvm* myVM(JNIEnv* env);
-
-  /// resolvedImplClass - Return the internal representation of the
-  /// java.lang.Class object. The class must be resolved.
-  //
-  static UserCommonClass* resolvedImplClass(Jnjvm* vm, jclass clazz,
-                                            bool doClinit);
-
-  /// decapsulePrimitive - Based on the signature argument, decapsule
-  /// obj as a primitive and put it in the buffer.
-  ///
-  static void decapsulePrimitive(Jnjvm *vm, uintptr_t &buf, JavaObject* obj,
-                                 const Typedef* signature);
-
-};
-
-}
-
-#endif





More information about the vmkit-commits mailing list