[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