[vmkit-commits] [vmkit] r57294 - /vmkit/trunk/lib/JnJVM/Classpath/
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Oct 8 06:01:26 PDT 2008
Author: geoffray
Date: Wed Oct 8 08:01:20 2008
New Revision: 57294
URL: http://llvm.org/viewvc/llvm-project?rev=57294&view=rev
Log:
Rename. LLVM Makefile style links the files even if they
are not used statically.
Added:
vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
- copied, changed from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMField.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp
- copied unchanged from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp.inc
Removed:
vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMField.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp.inc
Modified:
vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
Modified: vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp?rev=57294&r1=57293&r2=57294&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp Wed Oct 8 08:01:20 2008
@@ -10,21 +10,9 @@
#include "Classpath.h"
-
-#include "ClasspathConstructor.cpp.inc"
-#include "ClasspathMethod.cpp.inc"
-#include "ClasspathVMClass.cpp.inc"
-#include "ClasspathVMClassLoader.cpp.inc"
-#include "ClasspathVMField.cpp.inc"
-#include "ClasspathVMObject.cpp.inc"
-#include "ClasspathVMRuntime.cpp.inc"
-#include "ClasspathVMStackWalker.cpp.inc"
-#include "ClasspathVMSystem.cpp.inc"
-#include "ClasspathVMSystemProperties.cpp.inc"
-#include "ClasspathVMThread.cpp.inc"
-#include "ClasspathVMThrowable.cpp.inc"
-
#include "JavaClass.h"
+#include "JavaThread.h"
+#include "JavaUpcalls.h"
#include "Jnjvm.h"
#include "NativeUtil.h"
Copied: vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (from r57293, vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc)
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp?p2=vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp&p1=vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc&r1=57293&r2=57294&rev=57294&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp Wed Oct 8 08:01:20 2008
@@ -26,7 +26,6 @@
extern "C" {
-
JNIEXPORT jobject JNICALL Java_java_lang_reflect_Constructor_getParameterTypes(
#ifdef NATIVE_JNI
JNIEnv *env,
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp.inc (removed)
@@ -1,129 +0,0 @@
-//===- ClasspathConstructor.cpp -------------------------------------------===//
-//===----------- GNU classpath java/lang/reflect/Constructor --------------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.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;
-
-extern "C" {
-
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Constructor_getParameterTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject cons) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaMethod* meth = (JavaMethod*)(vm->upcalls->constructorSlot->getInt32Field((JavaObject*)cons));
-#ifdef ISOLATE_SHARING
- jclass Cl = (jclass)vm->upcalls->constructorClass->getInt32Field((JavaObject*)cons);
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
- JnjvmClassLoader* loader = cl->classLoader;
-#else
- JnjvmClassLoader* loader = meth->classDef->classLoader;
-#endif
-
- return (jobject)(NativeUtil::getParameterTypes(loader, meth));
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Constructor_getModifiersInternal(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject cons) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaMethod* meth = (JavaMethod*)(vm->upcalls->constructorSlot->getInt32Field((JavaObject*)cons));
- return meth->access;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Constructor_constructNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
- jobject _cons,
- jobject _args,
- jclass Clazz,
- jint _meth) {
- JavaMethod* meth = (JavaMethod*)_meth;
- JavaArray* args = (JavaArray*)_args;
- sint32 nbArgs = args ? args->size : 0;
- sint32 size = meth->getSignature()->args.size();
- Jnjvm* vm = JavaThread::get()->isolate;
-
- void** buf = (void**)alloca(size * sizeof(uint64));
- void* _buf = (void*)buf;
- sint32 index = 0;
- if (nbArgs == size) {
- UserCommonClass* _cl = NativeUtil::resolvedImplClass(Clazz, false);
- if (!_cl->isArray()) {
- UserClass* cl = (UserClass*)_cl;
- cl->initialiseClass(vm);
-
- JavaObject* res = cl->doNew(vm);
- JavaObject** ptr = (JavaObject**)(void*)(args->elements);
- for (std::vector<Typedef*>::iterator i = meth->getSignature()->args.begin(),
- e = meth->getSignature()->args.end(); i != e; ++i, ++index) {
- NativeUtil::decapsulePrimitive(vm, buf, ptr[index], *i);
- }
-
- JavaObject* excp = 0;
- try {
- meth->invokeIntSpecialBuf(vm, cl, res, _buf);
- }catch(...) {
- excp = JavaThread::getJavaException();
- JavaThread::clearException();
- }
- if (excp) {
- if (excp->classOf->isAssignableFrom(vm->upcalls->newException)) {
- vm->invocationTargetException(excp);
- } else {
- JavaThread::throwException(excp);
- }
- }
-
- return (jobject)res;
- }
- }
- vm->illegalArgumentExceptionForMethod(meth, 0, 0);
- return 0;
-}
-
-JNIEXPORT jobjectArray JNICALL Java_java_lang_reflect_Constructor_getExceptionTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject cons) {
- verifyNull(cons);
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaMethod* meth = (JavaMethod*)vm->upcalls->constructorSlot->getInt32Field((JavaObject*)cons);
- UserClass* cl = 0;
-#ifdef ISOLATE_SHARING
- jclass Cl = (jclass)vm->upcalls->methodClass->getInt32Field((JavaObject*)cons);
- cl = (UserClass*)NativeUtil::resolvedImplClass(Cl, false);
-#else
- cl = meth->classDef;
-#endif
-
- return (jobjectArray)NativeUtil::getExceptionTypes(cl, meth);
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp.inc (removed)
@@ -1,226 +0,0 @@
-//===- ClasspathMethod.cpp ------------------------------------------------===//
-//===------------- GNU classpath java/lang/reflect/Method -----------------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.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;
-
-extern "C" {
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Method_getModifiersInternal(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
- jobject Meth) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaMethod* meth = (JavaMethod*)vm->upcalls->methodSlot->getInt32Field((JavaObject*)Meth);
- return meth->access;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_reflect_Method_getReturnType(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
- jobject Meth) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaMethod* meth = (JavaMethod*)vm->upcalls->methodSlot->getInt32Field((JavaObject*)Meth);
-#ifdef ISOLATE_SHARING
- jclass Cl = (jclass)vm->upcalls->methodClass->getInt32Field((JavaObject*)Meth);
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
- JnjvmClassLoader* loader = cl->classLoader;
-#else
- JnjvmClassLoader* loader = meth->classDef->classLoader;
-#endif
- return (jclass)NativeUtil::getClassType(loader, meth->getSignature()->ret);
-}
-
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Method_getParameterTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-
- jobject Meth) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaMethod* meth = (JavaMethod*)vm->upcalls->methodSlot->getInt32Field((JavaObject*)Meth);
-#ifdef ISOLATE_SHARING
- jclass Cl = (jclass)vm->upcalls->methodClass->getInt32Field((JavaObject*)Meth);
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
- JnjvmClassLoader* loader = cl->classLoader;
-#else
- JnjvmClassLoader* loader = meth->classDef->classLoader;
-#endif
- return (jobject)(NativeUtil::getParameterTypes(loader, meth));
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Method_invokeNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
- jobject Meth, jobject _obj, jobject _args, jclass Cl, jint _meth) {
-
- JavaMethod* meth = (JavaMethod*)_meth;
- JavaArray* args = (JavaArray*)_args;
- sint32 nbArgs = args ? args->size : 0;
- sint32 size = meth->getSignature()->args.size();
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaObject* obj = (JavaObject*)_obj;
-
- void** buf = (void**)alloca(size * sizeof(uint64));
- void* _buf = (void*)buf;
- sint32 index = 0;
- if (nbArgs == size) {
- UserCommonClass* _cl = NativeUtil::resolvedImplClass(Cl, false);
- UserClass* cl = (UserClass*)_cl;
-
- if (isVirtual(meth->access)) {
- verifyNull(obj);
- if (!(obj->classOf->isAssignableFrom(cl))) {
- vm->illegalArgumentExceptionForMethod(meth, cl, obj->classOf);
- }
-#ifdef ISOLATE_SHARING
- if (isInterface(cl->classDef->access)) {
- cl = obj->classOf->lookupClassFromMethod(meth);
- } else {
- jclass Cl = (jclass)vm->upcalls->methodClass->getInt32Field((JavaObject*)Meth);
- cl = (UserClass*)NativeUtil::resolvedImplClass(Cl, false);
- }
-#endif
-
- } else {
- cl->initialiseClass(vm);
- }
-
- JavaObject** ptr = (JavaObject**)(void*)(args->elements);
- for (std::vector<Typedef*>::iterator i = meth->getSignature()->args.begin(),
- e = meth->getSignature()->args.end(); i != e; ++i, ++index) {
- NativeUtil::decapsulePrimitive(vm, buf, ptr[index], *i);
- }
-
- JavaObject* exc = 0;
-
-#define RUN_METH(TYPE) \
- try{ \
- if (isVirtual(meth->access)) { \
- if (isPublic(meth->access) && !isFinal(meth->access) && !isFinal(meth->classDef->access)) { \
- val = meth->invoke##TYPE##VirtualBuf(vm, cl, obj, _buf); \
- } else { \
- val = meth->invoke##TYPE##SpecialBuf(vm, cl, obj, _buf); \
- } \
- } else { \
- val = meth->invoke##TYPE##StaticBuf(vm, cl, _buf); \
- } \
- }catch(...) { \
- exc = JavaThread::getJavaException(); \
- assert(exc && "no exception?"); \
- JavaThread::clearException(); \
- } \
- \
- if (exc) { \
- if (exc->classOf->isAssignableFrom(vm->upcalls->newException)) { \
- JavaThread::get()->isolate->invocationTargetException(exc); \
- } else { \
- JavaThread::throwException(exc); \
- } \
- } \
-
- JavaObject* res = 0;
- Typedef* retType = meth->getSignature()->ret;
- if (retType->isPrimitive()) {
- PrimitiveTypedef* prim = (PrimitiveTypedef*)retType;
- if (prim->isVoid()) {
- res = 0;
- uint32 val = 0;
- RUN_METH(Int);
- } else if (prim->isBool()) {
- uint32 val = 0;
- RUN_METH(Int);
- res = vm->upcalls->boolClass->doNew(vm);
- vm->upcalls->boolValue->setInt8Field(res, val);
- } else if (prim->isByte()) {
- uint32 val = 0;
- RUN_METH(Int);
- res = vm->upcalls->byteClass->doNew(vm);
- vm->upcalls->byteValue->setInt8Field(res, val);
- } else if (prim->isChar()) {
- uint32 val = 0;
- RUN_METH(Int);
- res = vm->upcalls->charClass->doNew(vm);
- vm->upcalls->charValue->setInt16Field(res, val);
- } else if (prim->isShort()) {
- uint32 val = 0;
- RUN_METH(Int);
- res = vm->upcalls->shortClass->doNew(vm);
- vm->upcalls->shortValue->setInt16Field(res, val);
- } else if (prim->isInt()) {
- uint32 val = 0;
- RUN_METH(Int);
- res = vm->upcalls->intClass->doNew(vm);
- vm->upcalls->intValue->setInt32Field(res, val);
- } else if (prim->isLong()) {
- sint64 val = 0;
- RUN_METH(Long);
- res = vm->upcalls->longClass->doNew(vm);
- vm->upcalls->longValue->setLongField(res, val);
- } else if (prim->isFloat()) {
- float val = 0;
- RUN_METH(Float);
- res = vm->upcalls->floatClass->doNew(vm);
- vm->upcalls->floatValue->setFloatField(res, val);
- } else if (prim->isDouble()) {
- double val = 0;
- RUN_METH(Double);
- res = vm->upcalls->doubleClass->doNew(vm);
- vm->upcalls->doubleValue->setDoubleField(res, val);
- }
- } else {
- JavaObject* val = 0;
- RUN_METH(JavaObject);
- res = val;
- }
- return (jobject)res;
- }
- vm->illegalArgumentExceptionForMethod(meth, 0, 0);
- return 0;
-}
-
-#undef RUN_METH
-
-JNIEXPORT jobjectArray JNICALL Java_java_lang_reflect_Method_getExceptionTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
- jobject _meth) {
- verifyNull(_meth);
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaMethod* meth = (JavaMethod*)vm->upcalls->methodSlot->getInt32Field((JavaObject*)_meth);
- UserClass* cl = 0;
-#ifdef ISOLATE_SHARING
- jclass Cl = (jclass)vm->upcalls->methodClass->getInt32Field((JavaObject*)_meth);
- cl = (UserClass*)NativeUtil::resolvedImplClass(Cl, false);
-#else
- cl = meth->classDef;
-#endif
- return (jobjectArray)NativeUtil::getExceptionTypes(cl, meth);
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp.inc (removed)
@@ -1,386 +0,0 @@
-//===---- ClasspathVMClass.cpp - GNU classpath java/lang/VMClass ----------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.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;
-
-extern "C" {
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isArray(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject klass) {
-
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)klass);
-
- return cl->isArray();
-
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClass_forName(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-
- jobject str,
- jboolean clinit,
- jobject loader) {
-
- Jnjvm* vm = JavaThread::get()->isolate;
- JnjvmClassLoader* JCL = JnjvmClassLoader::getJnjvmLoaderFromJavaObject((JavaObject*)loader, vm);
- UserCommonClass* cl = JCL->lookupClassFromJavaString((JavaString*)str,
- true, false);
- if (cl != 0) {
- if (clinit) {
- cl->initialiseClass(vm);
- }
- return (jclass)(cl->getClassDelegatee(vm));
- } else {
- vm->classNotFoundException((JavaString*)str);
- return 0;
- }
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredConstructors(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
-
- jclass Cl,
- jboolean publicOnly) {
-
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
- Jnjvm* vm = JavaThread::get()->isolate;
-
- if (cl->isArray() || cl->isInterface()) {
- return (jobject)vm->upcalls->constructorArrayClass->doNew(0, vm);
- } else {
- std::vector<JavaMethod*> res;
- cl->getDeclaredConstructors(res, publicOnly);
-
- ArrayObject* ret =
- (ArrayObject*)vm->upcalls->constructorArrayClass->doNew(res.size(), vm);
- sint32 index = 0;
- for (std::vector<JavaMethod*>::iterator i = res.begin(), e = res.end();
- i != e; ++i, ++index) {
- JavaMethod* meth = *i;
- // TODO: check parameter types
- UserClass* Cons = vm->upcalls->newConstructor;
- JavaObject* tmp = Cons->doNew(vm);
- vm->upcalls->initConstructor->invokeIntSpecial(vm, Cons, tmp, Cl, meth);
- ret->elements[index] = tmp;
- }
- return (jobject)ret;
- }
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredMethods(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
-
- jclass Cl,
- jboolean publicOnly) {
-
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
-
- if (cl->isArray()) {
- return (jobject)vm->upcalls->methodArrayClass->doNew(0, vm);
- } else {
- std::vector<JavaMethod*> res;
- cl->getDeclaredMethods(res, publicOnly);
-
- ArrayObject* ret = (ArrayObject*)vm->upcalls->methodArrayClass->doNew(res.size(), vm);
- sint32 index = 0;
- for (std::vector<JavaMethod*>::iterator i = res.begin(), e = res.end();
- i != e; ++i, ++index) {
- JavaMethod* meth = *i;
- // TODO: check parameter types
- UserClass* Meth = vm->upcalls->newMethod;
- JavaObject* tmp = Meth->doNew(vm);
- vm->upcalls->initMethod->invokeIntSpecial(vm, Meth, tmp, Cl,
- vm->UTF8ToStr(meth->name), meth);
- ret->elements[index] = tmp;
- }
- return (jobject)ret;
- }
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_VMClass_getModifiers(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
- jclass Cl,
- jboolean ignore) {
-
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
- return cl->getAccess();
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getName(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
- jobject Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl);
-
- const UTF8* iname = cl->getName();
- const UTF8* res = iname->internalToJava(cl->classLoader->hashUTF8, 0, iname->size);
-
- return (jobject)(vm->UTF8ToStr(res));
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isPrimitive(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
- jclass Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl);
-
- return cl->isPrimitive();
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isInterface(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
- jclass Cl) {
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
-
- return cl->isInterface();
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getComponentType(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
- jclass Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl);
-
- if (cl->isArray()) {
- UserCommonClass* bc = ((UserClassArray*)cl)->baseClass();
- return (jclass)(bc->getClassDelegatee(vm));
- } else {
- return 0;
- }
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getClassLoader(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl);
- return (jobject)cl->classLoader->getJavaClassLoader();
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isAssignableFrom(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl1, jclass Cl2) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl1 =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl1);
- UserCommonClass* cl2 =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl2);
-
- cl2->resolveClass();
- return cl2->isAssignableFrom(cl1);
-
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getSuperclass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl);
- if (cl->isInterface())
- return 0;
- else {
- cl->resolveClass();
- if (cl->getSuper()) return (jobject)cl->getSuper()->getClassDelegatee(vm);
- else return 0;
- }
-}
-
-JNIEXPORT bool JNICALL Java_java_lang_VMClass_isInstance(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl =
- (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField((JavaObject*)Cl);
- return ((JavaObject*)obj)->instanceOf(cl);
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredFields(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl, jboolean publicOnly) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserClass* cl = NativeUtil::resolvedImplClass(Cl, false)->asClass();
-
- if (!cl) {
- return (jobject)vm->upcalls->fieldArrayClass->doNew(0, vm);
- } else {
- std::vector<JavaField*> res;
- cl->getDeclaredFields(res, publicOnly);
-
- ArrayObject* ret =
- (ArrayObject*)vm->upcalls->fieldArrayClass->doNew(res.size(), vm);
- sint32 index = 0;
- for (std::vector<JavaField*>::iterator i = res.begin(), e = res.end();
- i != e; ++i, ++index) {
- JavaField* field = *i;
- // TODO: check parameter types
- UserClass* Field = vm->upcalls->newField;
- JavaObject* tmp = Field->doNew(vm);
- vm->upcalls->initField->invokeIntSpecial(vm, Field, tmp, Cl,
- vm->UTF8ToStr(field->name), field);
- ret->elements[index] = tmp;
- }
- return (jobject)ret;
- }
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getInterfaces(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserCommonClass* cl = NativeUtil::resolvedImplClass(Cl, false);
- std::vector<UserClass*> * interfaces = cl->getInterfaces();
- ArrayObject* ret =
- (ArrayObject*)vm->upcalls->classArrayClass->doNew(interfaces->size(), vm);
- sint32 index = 0;
- for (std::vector<UserClass*>::iterator i = interfaces->begin(),
- e = interfaces->end(); i != e; ++i, ++index) {
- UserClass* klass = *i;
- ret->elements[index] = klass->getClassDelegatee(vm);
- }
- return (jobject)ret;
-}
-
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getDeclaringClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserClass* cl = NativeUtil::resolvedImplClass(Cl, false)->asClass();
- if (cl) {
- cl->resolveInnerOuterClasses();
- UserClass* outer = cl->getOuterClass();
- if (outer) {
- return (jclass)outer->getClassDelegatee(vm);
- }
- }
-
- return 0;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredClasses(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl, bool publicOnly) {
- Jnjvm* vm = JavaThread::get()->isolate;
- UserClass* cl = NativeUtil::resolvedImplClass(Cl, false)->asClass();
- if (cl) {
- cl->resolveInnerOuterClasses();
- std::vector<UserClass*>* innerClasses = cl->getInnerClasses();
- ArrayObject* res =
- (ArrayObject*)vm->upcalls->constructorArrayClass->doNew(innerClasses->size(), vm);
- uint32 index = 0;
- for (std::vector<UserClass*>::iterator i = innerClasses->begin(),
- e = innerClasses->end(); i!= e; i++) {
- res->elements[index++] = (*i)->getClassDelegatee(vm);
- }
- return (jobject)res;
- }
-
- return 0;
-
-}
-
-
-JNIEXPORT void JNICALL Java_java_lang_VMClass_throwException(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject throwable) {
- JavaThread::throwException((JavaObject*)throwable);
-}
-
-JNIEXPORT jobjectArray Java_java_lang_VMClass_getDeclaredAnnotations(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl) {
- // TODO implement me
- Jnjvm* vm = JavaThread::get()->isolate;
- ArrayObject* res = (ArrayObject*)vm->upcalls->constructorArrayAnnotation->doNew(0, vm);
- return (jobjectArray)res;
-}
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp.inc (removed)
@@ -1,113 +0,0 @@
-//===- ClasspathVMClassLoader.cpp - GNU classpath java/lang/VMClassLoader -===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.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;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClassLoader_getPrimitiveClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jchar byteId) {
-
- Jnjvm* vm = JavaThread::get()->isolate;
- UserClassPrimitive* prim =
- UserClassPrimitive::byteIdToPrimitive(byteId, vm->upcalls);
- if (!prim)
- vm->unknownError("unknown byte primitive %c", byteId);
-
- return (jobject)prim->getClassDelegatee(vm);
-
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClassLoader_findLoadedClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jobject loader,
- jobject _name) {
-
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaString* name = (JavaString*)_name;
- const UTF8* utf8 = name->strToUTF8(vm);
- JnjvmClassLoader* JCL = JnjvmClassLoader::getJnjvmLoaderFromJavaObject((JavaObject*)loader, vm);
- UserCommonClass* cl = JCL->lookupClass(utf8);
-
- if (cl) return (jclass)(cl->getClassDelegatee(vm));
- else return 0;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClassLoader_loadClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jobject _str,
- jboolean doResolve) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaString* str = (JavaString*)_str;
-
- JnjvmClassLoader* JCL = vm->bootstrapLoader;
- UserCommonClass* cl = JCL->lookupClassFromJavaString(str, doResolve, false);
-
- if (cl != 0) {
- return (jclass)cl->getClassDelegatee(vm);
- } else {
- return 0;
- }
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClassLoader_defineClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jobject loader,
- jobject _str,
- jobject bytes,
- jint off,
- jint len,
- jobject pd) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JnjvmClassLoader* JCL = JnjvmClassLoader::getJnjvmLoaderFromJavaObject((JavaObject*)loader, vm);
- JavaString* str = (JavaString*)_str;
- const UTF8* name = str->value->javaToInternal(JCL->hashUTF8, str->offset, str->count);
- UserClass* cl = JCL->constructClass(name, (ArrayUInt8*)bytes);
-
- return (jclass)(cl->getClassDelegatee(vm, (JavaObject*)pd));
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMClassLoader_resolveClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jclass Cl) {
- verifyNull(Cl);
- NativeUtil::resolvedImplClass(Cl, false);
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMField.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMField.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMField.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMField.cpp.inc (removed)
@@ -1,668 +0,0 @@
-//===- ClasspathVMField.cpp - GNU classpath java/lang/reflect/Field -------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-
-#include "JavaClass.h"
-#include "JavaThread.h"
-#include "JavaTypes.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-#include "NativeUtil.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-
-static UserClass* internalGetClass(Jnjvm* vm, JavaField* field, jobject Field) {
-#ifdef ISOLATE_SHARING
- jclass Cl = (jclass)vm->upcalls->fieldClass->getInt32Field((JavaObject*)Field);
- UserClass* cl = (UserClass*)NativeUtil::resolvedImplClass(Cl, false);
- return cl;
-#else
- return field->classDef;
-#endif
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Field_getModifiersInternal(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)obj);
- return field->access;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_reflect_Field_getType(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)obj);
- UserClass* fieldCl = internalGetClass(vm, field, obj);
- JnjvmClassLoader* loader = fieldCl->classLoader;
- UserCommonClass* cl = field->getSignature()->assocClass(loader);
- return (jclass)cl->getClassDelegatee(vm);
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Field_getInt(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- const Typedef* type = field->getSignature();
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-
- if (prim->isInt())
- return (sint32)field->getInt32Field(Obj);
- if (prim->isChar())
- return (uint32)field->getInt16Field(Obj);
- if (prim->isByte())
- return (sint32)field->getInt8Field(Obj);
- if (prim->isShort())
- return (sint32)field->getInt16Field(Obj);
- }
-
- JavaThread::get()->isolate->illegalArgumentException("");
- return 0;
-
-}
-
-JNIEXPORT jlong JNICALL Java_java_lang_reflect_Field_getLong(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-
- if (prim->isInt())
- return (sint64)field->getInt32Field(Obj);
- if (prim->isChar())
- return (uint64)field->getInt16Field(Obj);
- if (prim->isByte())
- return (sint64)field->getInt8Field(Obj);
- if (prim->isShort())
- return (sint64)field->getInt16Field(Obj);
- if (prim->isLong())
- return (sint64)field->getLongField(Obj);
- }
-
- JavaThread::get()->isolate->illegalArgumentException("");
- return 0;
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_reflect_Field_getBoolean(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isBool())
- return (uint8)field->getInt8Field(Obj);
- }
-
- JavaThread::get()->isolate->illegalArgumentException("");
-
- return 0;
-
-}
-
-JNIEXPORT jfloat JNICALL Java_java_lang_reflect_Field_getFloat(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isByte())
- return (jfloat)field->getInt8Field(Obj);
- if (prim->isInt())
- return (jfloat)field->getInt32Field((JavaObject*)obj);
- if (prim->isShort())
- return (jfloat)field->getInt16Field((JavaObject*)obj);
- if (prim->isLong())
- return (jfloat)field->getLongField((JavaObject*)obj);
- if (prim->isChar())
- return (jfloat)(uint32)field->getInt16Field((JavaObject*)obj);
- if (prim->isFloat())
- return (jfloat)field->getFloatField((JavaObject*)obj);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
- return 0.0;
-}
-
-JNIEXPORT jbyte JNICALL Java_java_lang_reflect_Field_getByte(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isByte())
- return (sint8)field->getInt8Field(Obj);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-
- return 0;
-}
-
-JNIEXPORT jchar JNICALL Java_java_lang_reflect_Field_getChar(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isChar())
- return (uint16)field->getInt16Field((JavaObject*)obj);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-
- return 0;
-
-}
-
-JNIEXPORT jshort JNICALL Java_java_lang_reflect_Field_getShort(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isShort())
- return (sint16)field->getInt16Field(Obj);
- if (prim->isByte())
- return (sint16)field->getInt8Field(Obj);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-
- return 0;
-}
-
-JNIEXPORT jdouble JNICALL Java_java_lang_reflect_Field_getDouble(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isByte())
- return (jdouble)(sint64)field->getInt8Field(Obj);
- if (prim->isInt())
- return (jdouble)(sint64)field->getInt32Field(Obj);
- if (prim->isShort())
- return (jdouble)(sint64)field->getInt16Field(Obj);
- if (prim->isLong())
- return (jdouble)(sint64)field->getLongField(Obj);
- if (prim->isChar())
- return (jdouble)(uint64)field->getInt16Field(Obj);
- if (prim->isFloat())
- return (jdouble)field->getFloatField(Obj);
- if (prim->isDouble())
- return (jdouble)field->getDoubleField(Obj);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
- return 0.0;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Field_get(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject _obj) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)_obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- JavaObject* res = 0;
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isBool()) {
- uint8 val = field->getInt8Field(Obj);
- res = vm->upcalls->boolClass->doNew(vm);
- vm->upcalls->boolValue->setInt8Field(res, val);
- }
- else if (prim->isByte()) {
- sint8 val = field->getInt8Field(Obj);
- res = vm->upcalls->byteClass->doNew(vm);
- vm->upcalls->byteValue->setInt8Field(res, val);
- }
- else if (prim->isChar()) {
- uint16 val = field->getInt16Field(Obj);
- res = vm->upcalls->charClass->doNew(vm);
- vm->upcalls->charValue->setInt16Field(res, val);
- }
- else if (prim->isShort()) {
- sint16 val = field->getInt16Field(Obj);
- res = vm->upcalls->shortClass->doNew(vm);
- vm->upcalls->shortValue->setInt16Field(res, val);
- }
- else if (prim->isInt()) {
- sint32 val = field->getInt32Field(Obj);
- res = vm->upcalls->intClass->doNew(vm);
- vm->upcalls->intValue->setInt32Field(res, val);
- }
- else if (prim->isLong()) {
- sint64 val = field->getLongField(Obj);
- res = vm->upcalls->longClass->doNew(vm);
- vm->upcalls->longValue->setLongField(res, val);
- }
- else if (prim->isFloat()) {
- float val = field->getFloatField(Obj);
- res = vm->upcalls->floatClass->doNew(vm);
- vm->upcalls->floatValue->setFloatField(res, val);
- }
- else if (prim->isDouble()) {
- double val = field->getDoubleField(Obj);
- res = vm->upcalls->doubleClass->doNew(vm);
- vm->upcalls->doubleValue->setDoubleField(res, val);
- }
- } else {
- res = field->getObjectField(Obj);
- }
- return (jobject)res;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_set(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jobject val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- void** buf = (void**)alloca(sizeof(uint64));
- void* _buf = (void*)buf;
- NativeUtil::decapsulePrimitive(JavaThread::get()->isolate, buf, (JavaObject*)val, field->getSignature());
-
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isBool())
- return field->setInt8Field(Obj, ((uint8*)_buf)[0]);
- if (prim->isByte())
- return field->setInt8Field(Obj, ((sint8*)_buf)[0]);
- if (prim->isChar())
- return field->setInt16Field(Obj, ((uint16*)_buf)[0]);
- if (prim->isShort())
- return field->setInt16Field(Obj, ((sint16*)_buf)[0]);
- if (prim->isInt())
- return field->setInt32Field(Obj, ((sint32*)_buf)[0]);
- if (prim->isLong())
- return field->setLongField(Obj, ((sint64*)_buf)[0]);
- if (prim->isFloat())
- return field->setFloatField(Obj, ((float*)_buf)[0]);
- if (prim->isDouble())
- return field->setDoubleField(Obj, ((double*)_buf)[0]);
- } else {
- return field->setObjectField(Obj, ((JavaObject**)_buf)[0]);
- }
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setBoolean(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jboolean val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isBool())
- return field->setInt8Field(Obj, (uint8)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setByte(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jbyte val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isByte())
- return field->setInt8Field(Obj, (sint8)val);
- if (prim->isShort())
- return field->setInt16Field(Obj, (sint16)val);
- if (prim->isInt())
- return field->setInt32Field(Obj, (sint32)val);
- if (prim->isLong())
- return field->setLongField(Obj, (sint64)val);
- if (prim->isFloat())
- return field->setFloatField(Obj, (float)val);
- if (prim->isDouble())
- return field->setDoubleField(Obj, (double)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setChar(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jchar val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isChar())
- return field->setInt16Field(Obj, (uint16)val);
- if (prim->isInt())
- return field->setInt32Field(Obj, (uint32)val);
- if (prim->isLong())
- return field->setLongField(Obj, (uint64)val);
- if (prim->isFloat())
- return field->setFloatField(Obj, (float)(uint32)val);
- if (prim->isDouble())
- return field->setDoubleField(Obj, (double)(uint64)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setShort(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jshort val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
-
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isShort())
- return field->setInt16Field(Obj, (sint16)val);
- if (prim->isInt())
- return field->setInt32Field(Obj, (sint32)val);
- if (prim->isLong())
- return field->setLongField(Obj, (sint64)val);
- if (prim->isFloat())
- return field->setFloatField(Obj, (float)val);
- if (prim->isDouble())
- return field->setDoubleField(Obj, (double)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setInt(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jint val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isInt())
- return field->setInt32Field(Obj, (sint32)val);
- if (prim->isLong())
- return field->setLongField(Obj, (sint64)val);
- if (prim->isFloat())
- return field->setFloatField(Obj, (float)val);
- if (prim->isDouble())
- return field->setDoubleField(Obj, (double)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setLong(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jlong val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isLong())
- return field->setLongField(Obj, (sint64)val);
- if (prim->isFloat())
- return field->setFloatField(Obj, (float)val);
- if (prim->isDouble())
- return field->setDoubleField(Obj, (double)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setFloat(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jfloat val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isFloat())
- return field->setFloatField(Obj, (float)val);
- if (prim->isDouble())
- return field->setDoubleField(Obj, (double)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setDouble(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject Field, jobject obj, jdouble val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- JavaObject* Obj = (JavaObject*)obj;
-
- if (isStatic(field->access)) {
- UserClass* cl = internalGetClass(vm, field, Field);
- cl->initialiseClass(vm);
- Obj = cl->getStaticInstance();
- }
-
- const Typedef* type = field->getSignature();
- if (type->isPrimitive()) {
- const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
- if (prim->isDouble())
- return field->setDoubleField(Obj, (double)val);
- }
- JavaThread::get()->isolate->illegalArgumentException("");
-}
-
-JNIEXPORT jlong JNICALL Java_sun_misc_Unsafe_objectFieldOffset(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObject* Unsafe,
-JavaObject* Field) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaField* field = (JavaField*)vm->upcalls->fieldSlot->getInt32Field((JavaObject*)Field);
- return (jlong)field->ptrOffset;
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp.inc (removed)
@@ -1,101 +0,0 @@
-//===------ ClasspathVMObject.cpp - GNU classpath java/lang/VMObject ------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.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;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMObject_clone(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jobject _src) {
-
- JavaObject* src = (JavaObject*)_src;
- UserCommonClass* cl = src->classOf;
- uint64 size = 0;
- if (cl->isArray()) {
- size = sizeof(JavaArray) + ((JavaArray*)src)->size *
- ((UserClassArray*)cl)->baseClass()->getVirtualSize();
- } else {
- size = cl->getVirtualSize();
- }
- JavaObject* res = (JavaObject*)
- JavaThread::get()->isolate->allocator.allocateObject(size, src->getVirtualTable());
- memcpy(res, src, size);
- res->lock = 0;
- return (jobject)res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMObject_getClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jobject _obj) {
-
- JavaObject* obj = (JavaObject*)_obj;
- Jnjvm* vm = JavaThread::get()->isolate;
- return (jobject)(obj->classOf->getClassDelegatee(vm));
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMObject_notifyAll(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-
- jobject _obj) {
- JavaObject* obj = (JavaObject*)_obj;
- obj->notifyAll();
-}
-
-
-JNIEXPORT void JNICALL Java_java_lang_VMObject_wait(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _object, jlong ms, jint ns) {
- uint32 sec = (uint32) (ms / 1000);
- uint32 usec = (ns / 1000) + 1000 * (ms % 1000);
- JavaObject* obj = (JavaObject*)_object;
- if (sec || usec) {
- struct timeval t;
- t.tv_sec = sec;
- t.tv_usec = usec;
- obj->timedWait(t);
- } else {
- obj->wait();
- }
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMObject_notify(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject obj) {
- ((JavaObject*)obj)->notify();
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp.inc (removed)
@@ -1,183 +0,0 @@
-//===------ ClasspathVMRuntime.cpp - GNU classpath java/lang/VMRuntime ----===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <dlfcn.h>
-#include <string.h>
-
-#include "MvmGC.h"
-
-#include "types.h"
-
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaString.h"
-#include "JavaTypes.h"
-#include "JavaThread.h"
-#include "Jnjvm.h"
-#include "NativeUtil.h"
-
-
-using namespace jnjvm;
-
-extern "C" {
-
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMRuntime_mapLibraryName(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
- jobject _strLib) {
- JavaString* strLib = (JavaString*)_strLib;
- Jnjvm* vm = JavaThread::get()->isolate;
-
- const UTF8* utf8Lib = strLib->value;
- uint32 stLib = strLib->offset;
- sint32 lgLib = strLib->count;
- sint32 lgPre = vm->prelib->size;
- sint32 lgPost = vm->postlib->size;
-
- uint32 size = (uint32)(lgPre + lgLib + lgPost);
- uint16* elements = (uint16*)alloca(size * sizeof(uint16));
-
- memmove(elements, vm->prelib->elements, lgPre * sizeof(uint16));
- memmove(&(elements[lgPre]), &(utf8Lib->elements[stLib]), lgLib * sizeof(uint16));
- memmove(&(elements[lgPre + lgLib]), vm->postlib->elements, lgPost * sizeof(uint16));
-
- // TODO: find a better place to store the UTF8
- const UTF8* res = vm->bootstrapLoader->readerConstructUTF8(elements, size);
-
- return (jobject)(vm->UTF8ToStr(res));
-
-}
-
-typedef int (*onLoad_t)(const void**, void*);
-
-JNIEXPORT jint JNICALL Java_java_lang_VMRuntime_nativeLoad(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jobject _str,
- jobject _loader) {
- JavaString* str = (JavaString*)_str;
-#ifndef SERVICE_VM
- Jnjvm* vm = JavaThread::get()->isolate;
-#else
- Jnjvm* vm = Jnjvm::bootstrapVM;
-#endif
-
- char* buf = str->strToAsciiz();
-
- void* res = dlopen(buf, RTLD_LAZY | RTLD_LOCAL);
- if (res != 0) {
- vm->nativeLibs.push_back(res);
- onLoad_t onLoad = (onLoad_t)(intptr_t)dlsym(res, "JNI_OnLoad");
- if (onLoad) onLoad(&vm->javavmEnv, 0);
- return 1;
- } else {
- return 0;
- }
-}
-
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_gc(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-#ifdef MULTIPLE_GC
- mvm::Thread::get()->GC->collect();
-#else
- Collector::collect();
-#endif
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_runFinalization(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
- return;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_runFinalizationForExit(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
- return;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_exit(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jint par1) {
-#if defined(ISOLATE) || defined(ISOLATE_SHARING)
- // TODO: do a longjmp
- exit(par1);
-#else
- exit(par1);
-#endif
-}
-
-JNIEXPORT jlong Java_java_lang_VMRuntime_freeMemory(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-#ifdef MULTIPLE_GC
- return (jlong)mvm::Thread::get()->GC->getFreeMemory();
-#else
- return (jlong)Collector::getFreeMemory();
-#endif
-}
-
-JNIEXPORT jlong Java_java_lang_VMRuntime_totalMemory(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-#ifdef MULTIPLE_GC
- return (jlong)mvm::Thread::get()->GC->getTotalMemory();
-#else
- return (jlong)Collector::getTotalMemory();
-#endif
-}
-
-JNIEXPORT jlong Java_java_lang_VMRuntime_maxMemory(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-#ifdef MULTIPLE_GC
- return (jlong)mvm::Thread::get()->GC->getMaxMemory();
-#else
- return (jlong)Collector::getMaxMemory();
-#endif
-}
-
-JNIEXPORT jint Java_java_lang_VMRuntime_availableProcessors(){
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- return 1;
-}
-}
-
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp.inc (removed)
@@ -1,151 +0,0 @@
-//===- ClasspathVMStackWalker.cpp -----------------------------------------===//
-//===------------ GNU classpath gnu/classpath/VMStackWalker ---------------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.h"
-
-#include "mvm/JIT.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;
-
-extern "C" {
-
-#ifdef ISOLATE_SHARING
-uint32 getPools(UserConstantPool** pools, uint32 size) {
- unsigned int* top;
- register unsigned int **cur = ⊤
- register unsigned int **max = (unsigned int**)mvm::Thread::get()->baseSP;
-
- uint32 i = 0;
- for(; cur<max && i < size; cur++) {
- void* obj = (void*)(*cur);
- obj = Collector::begOf(obj);
- if (obj && ((mvm::Object*)obj)->getVirtualTable() == UserConstantPool::VT) {
- UserConstantPool* ctp = (UserConstantPool*)obj;
- pools[i++] = ctp;
- }
- }
- return i;
-}
-#endif
-
-#ifdef ISOLATE_SHARING
-JavaObject* getClassInContext(Jnjvm* vm, Class* cl, UserConstantPool** ctps, uint32& ctpIndex) {
- for (; ctpIndex < 100; ++ctpIndex) {
- UserClass* newCl = ctps[ctpIndex]->getClass();
- if (cl == newCl->classDef) return newCl->getClassDelegatee(vm);
- }
- return 0;
-}
-
-ArrayObject* recGetClassContext(Jnjvm* vm, int** stack, uint32 size, uint32 first, uint32 rec, UserConstantPool** ctps, uint32 ctpIndex) {
- if (size != first) {
- JavaMethod* meth = JavaJIT::IPToJavaMethod(stack[first]);
- if (meth) {
- JavaObject* obj = getClassInContext(vm, meth->classDef, ctps, ctpIndex);
- ArrayObject* res = recGetClassContext(vm, stack, size, first + 1, rec + 1, ctps, ctpIndex);
- res->elements[rec] = obj;
- assert(res->elements[rec] && "Did not found the user class");
- return res;
- } else {
- return recGetClassContext(vm, stack, size, first + 1, rec, ctps, ctpIndex);
- }
- } else {
- return (ArrayObject*)vm->upcalls->classArrayClass->doNew(rec, vm);
- }
-}
-#else
-ArrayObject* recGetClassContext(Jnjvm* vm, int** stack, uint32 size, uint32 first, uint32 rec) {
- if (size != first) {
- JavaMethod* meth = JavaJIT::IPToJavaMethod(stack[first]);
- if (meth) {
- ArrayObject* res = recGetClassContext(vm, stack, size, first + 1, rec + 1);
- res->elements[rec] = meth->classDef->getClassDelegatee(vm);
- return res;
- } else {
- return recGetClassContext(vm, stack, size, first + 1, rec);
- }
- } else {
- return (ArrayObject*)vm->upcalls->classArrayClass->doNew(rec, vm);
- }
-}
-#endif
-
-JNIEXPORT jobject JNICALL Java_gnu_classpath_VMStackWalker_getClassContext(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
- Jnjvm* vm = JavaThread::get()->isolate;
- int* ips[100];
- int real_size = mvm::jit::getBacktrace((void**)(void*)ips, 100);
-#ifdef ISOLATE_SHARING
- UserConstantPool* pools[100];
- getPools(pools, 100);
-#endif
-
- int i = 0;
- int first = 0;
- UserCommonClass* cl = vm->upcalls->vmStackWalker;
-
- while (i < real_size) {
- JavaMethod* meth = JavaJIT::IPToJavaMethod(ips[i++]);
-#ifdef ISOLATE_SHARING
- if (meth && meth->classDef == cl->classDef) {
-#else
- if (meth && meth->classDef == cl) {
-#endif
- first = i;
- break;
- }
- }
-
-#ifdef ISOLATE_SHARING
- return (jobject)recGetClassContext(vm, ips, real_size, first, 0, pools, 0);
-#else
- return (jobject)recGetClassContext(vm, ips, real_size, first, 0);
-#endif
-}
-
-JNIEXPORT jobject JNICALL Java_gnu_classpath_VMStackWalker_getClassLoader(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass _Cl) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaObject* Cl = (JavaObject*)_Cl;
- UserCommonClass* cl = (UserCommonClass*)vm->upcalls->vmdataClass->getObjectField(Cl);
- return (jobject)cl->classLoader->getJavaClassLoader();
-}
-
-extern "C" JavaObject* getCallingClass() {
- UserClass* cl = JavaJIT::getCallingClass();
- if (cl) return cl->getClassDelegatee(JavaThread::get()->isolate);
- return 0;
-}
-
-extern "C" JavaObject* getCallingClassLoader() {
- return JavaJIT::getCallingClassLoader();
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp.inc (removed)
@@ -1,109 +0,0 @@
-//===-- ClasspathVMSystem.cpp - GNU classpath java/lang/VMSystem ----------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.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;
-
-extern "C" {
-
-JNIEXPORT void JNICALL Java_java_lang_VMSystem_arraycopy(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass _cl,
-#endif
- jobject _src,
- jint sstart,
- jobject _dst,
- jint dstart,
- jint len) {
- jnjvm::Jnjvm *vm = JavaThread::get()->isolate;
- JavaArray* src = (JavaArray*)_src;
- JavaArray* dst = (JavaArray*)_dst;
-
- verifyNull(src);
- verifyNull(dst);
-
- if (!(src->classOf->isArray() && dst->classOf->isArray())) {
- vm->arrayStoreException();
- }
-
- UserClassArray* ts = (UserClassArray*)src->classOf;
- UserClassArray* td = (UserClassArray*)dst->classOf;
- UserCommonClass* dstType = td->baseClass();
- UserCommonClass* srcType = ts->baseClass();
-
- if (len > src->size) {
- vm->indexOutOfBounds(src, len);
- } else if (len > dst->size) {
- vm->indexOutOfBounds(dst, len);
- } else if (len + sstart > src->size) {
- vm->indexOutOfBounds(src, len + sstart);
- } else if (len + dstart > dst->size) {
- vm->indexOutOfBounds(dst, len + dstart);
- } else if (dstart < 0) {
- vm->indexOutOfBounds(dst, dstart);
- } else if (sstart < 0) {
- vm->indexOutOfBounds(src, sstart);
- } else if (len < 0) {
- vm->indexOutOfBounds(src, len);
- } else if ((dstType->isPrimitive() || srcType->isPrimitive()) &&
- srcType != dstType) {
- vm->arrayStoreException();
- }
-
- jint i = sstart;
- bool doThrow = false;
- if (!(dstType->isPrimitive())) {
- while (i < sstart + len && !doThrow) {
- JavaObject* cur = ((ArrayObject*)src)->elements[i];
- if (cur) {
- if (!(cur->classOf->isAssignableFrom(dstType))) {
- doThrow = true;
- len = i;
- }
- }
- ++i;
- }
- }
-
- uint32 size = dstType->isPrimitive() ?
- dstType->virtualSize : sizeof(JavaObject*);
-
- assert(size && "Size zero in a arraycopy");
- void* ptrDst = (void*)((int64_t)(dst->elements) + size * dstart);
- void* ptrSrc = (void*)((int64_t)(src->elements) + size * sstart);
- memmove(ptrDst, ptrSrc, size * len);
-
- if (doThrow)
- vm->arrayStoreException();
-
-
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_VMSystem_identityHashCode(
-#ifdef NATIVE_JNI
-JNIEnv *env,
- jclass clazz,
-#endif
- jobject obj) {
- return (jint)(intptr_t)obj;
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp.inc (removed)
@@ -1,131 +0,0 @@
-//===- ClasspathVMSystem/Properties.cpp -----------------------------------===//
-//===--------------------- GNU classpath gnu/classpath/VMSystemProperties -===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-#include <sys/utsname.h>
-
-#include "types.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;
-
-extern "C" {
-
-static void setProperty(Jnjvm* vm, JavaObject* prop, const char* key,
- const char* val) {
- vm->upcalls->setProperty->invokeIntSpecial(vm, (UserClass*)prop->classOf,
- prop,
- vm->asciizToStr(key),
- vm->asciizToStr(val));
-}
-
-static void setUnameProp(Jnjvm* vm, JavaObject* prop) {
- struct utsname infos;
- uname(&infos);
- setProperty(vm, prop, "os.name", infos.sysname);
- setProperty(vm, prop, "os.arch", infos.machine);
- setProperty(vm, prop, "os.version", infos.release);
- if (!strcmp(infos.machine, "ppc")) {
- setProperty(vm, prop, "gnu.cpu.endian","big");
- } else {
- setProperty(vm, prop, "gnu.cpu.endian","little");
- }
-}
-
-JNIEXPORT void JNICALL Java_gnu_classpath_VMSystemProperties_preInit(
-
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _prop) {
-
- JavaObject* prop = (JavaObject*)_prop;
- Jnjvm* vm = JavaThread::get()->isolate;
- const char* tmp;
- setProperty(vm, prop, "java.vm.specification.version", "1.0");
- setProperty(vm, prop, "java.vm.specification.vendor", "Sun Microsystems, Inc");
- setProperty(vm, prop, "java.vm.specification.name", "Java Virtual Machine Specification");
- setProperty(vm, prop, "java.specification.version", "1.5");
- setProperty(vm, prop, "java.specification.vendor", "Sun Microsystems, Inc");
- setProperty(vm, prop, "java.specification.name", "Java Platform API Specification");
- setProperty(vm, prop, "java.version", "1.5");
- setProperty(vm, prop, "java.runtime.version", "1.5");
- setProperty(vm, prop, "java.vendor", "VVM Project");
- setProperty(vm, prop, "java.vendor.url", "http://vvm.lip6.fr");
-
- tmp = getenv("JAVA_HOME");
- if (!tmp) tmp = "";
- setProperty(vm, prop, "java.home", tmp);
-
- JnjvmBootstrapLoader* JCL = vm->bootstrapLoader;
- setProperty(vm, prop, "java.class.version", "49.0");
- setProperty(vm, prop, "java.class.path", vm->classpath);
- setProperty(vm, prop, "java.boot.class.path", JCL->bootClasspathEnv);
- setProperty(vm, prop, "sun.boot.class.path", JCL->bootClasspathEnv);
- setProperty(vm, prop, "java.vm.version", "2.0");
- setProperty(vm, prop, "java.vm.vendor", "VVM Project");
- setProperty(vm, prop, "java.vm.name", "JnJVM");
- setProperty(vm, prop, "java.specification.version", "1.5");
- setProperty(vm, prop, "java.library.path", JCL->libClasspathEnv);
- setProperty(vm, prop, "java.io.tmpdir", "/tmp");
-
- tmp = getenv("JAVA_COMPILER");
- if (!tmp) tmp = "gcj";
- setProperty(vm, prop, "java.compiler", tmp);
-
- setProperty(vm, prop, "build.compiler", "gcj");
- setProperty(vm, prop, "gcj.class.path", JCL->bootClasspathEnv);
-
- setUnameProp(vm, prop);
-
- setProperty(vm, prop, "file.separator", vm->dirSeparator);
- setProperty(vm, prop, "path.separator", vm->envSeparator);
- setProperty(vm, prop, "line.separator", "\n");
-
- tmp = getenv("USERNAME");
- if (!tmp) tmp = getenv("LOGNAME");
- else if (!tmp) tmp = getenv("NAME");
- else if (!tmp) tmp = "";
- setProperty(vm, prop, "user.name", tmp);
-
- tmp = getenv("HOME");
- if (!tmp) tmp = "";
- setProperty(vm, prop, "user.home", tmp);
-
- tmp = getenv("PWD");
- if (!tmp) tmp = "";
- setProperty(vm, prop, "user.dir", tmp);
-
- //setProperty(vm, prop, "gnu.classpath.nio.charset.provider.iconv", "true")
-
- setProperty(vm, prop, "file.encoding", "ISO8859_1");
- setProperty(vm, prop, "gnu.java.util.zoneinfo.dir", "/usr/share/zoneinfo");
-
-
-}
-
-extern "C" void propertiesPostInit(JavaObject* prop) {
- Jnjvm* vm = JavaThread::get()->isolate;
- for (std::vector<std::pair<char*, char*> >::iterator i = vm->postProperties.begin(),
- e = vm->postProperties.end(); i!= e; i++) {
- setProperty(vm, prop, i->first, i->second);
- }
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc (removed)
@@ -1,200 +0,0 @@
-//===- ClasspathVMThread.cpp - GNU classpath java/lang/VMThread -----------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.h"
-
-#include "mvm/Threads/Thread.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"
-
-#ifdef SERVICE_VM
-#include "ServiceDomain.h"
-#endif
-
-using namespace jnjvm;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMThread_currentThread(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz
-#endif
-) {
- return (jobject)(JavaThread::currentThread());
-}
-
-typedef struct arg_thread_t {
- JavaObject* vmThread;
- JavaThread* intern;
-}arg_thread_t;
-
-static void start(arg_thread_t* arg) {
- int argc;
- JavaObject* vmThread = arg->vmThread;
- JavaThread* intern = arg->intern;
- free(arg);
- mvm::Thread::set(intern);
-#ifdef MULTIPLE_GC
- intern->GC->inject_my_thread(&argc);
-#else
- Collector::inject_my_thread(&argc);
-#endif
- UserClass* vmthClass = (UserClass*)vmThread->classOf;
- Jnjvm* isolate = intern->isolate;
- JavaObject* thread = isolate->upcalls->assocThread->getObjectField(vmThread);
- ThreadSystem* ts = isolate->threadSystem;
- bool isDaemon = isolate->upcalls->daemon->getInt8Field(thread);
- intern->threadID = (mvm::Thread::self() << 8) & 0x7FFFFF00;
-
-
- if (!isDaemon) {
- ts->nonDaemonLock->lock();
- ts->nonDaemonThreads++;
- ts->nonDaemonLock->unlock();
- }
-
-#ifdef SERVICE_VM
- ServiceDomain* vm = (ServiceDomain*)isolate;
- vm->startExecution();
- vm->lock->lock();
- vm->numThreads++;
- vm->lock->unlock();
-#endif
-
- isolate->upcalls->runVMThread->invokeIntSpecial(isolate, vmthClass, vmThread);
-
- if (!isDaemon) {
- ts->nonDaemonLock->lock();
- ts->nonDaemonThreads--;
- if (ts->nonDaemonThreads == 0)
- ts->nonDaemonVar->signal();
- ts->nonDaemonLock->unlock();
- }
-
-#ifdef SERVICE_VM
- vm->lock->lock();
- vm->numThreads--;
- vm->lock->unlock();
-#endif
-
-#ifdef MULTIPLE_GC
- intern->GC->remove_my_thread();
-#else
- Collector::remove_my_thread();
-#endif
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMThread_start(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject _vmThread, sint64 stackSize) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaObject* vmThread = (JavaObject*)_vmThread;
- JavaObject* javaThread = vm->upcalls->assocThread->getObjectField(vmThread);
- assert(javaThread);
-
- JavaThread* th = allocator_new(vm->allocator, JavaThread)();
- th->initialise(javaThread, vm);
- vm->upcalls->vmdataVMThread->setObjectField(vmThread, (JavaObject*)th);
- int tid = 0;
- arg_thread_t* arg = (arg_thread_t*)malloc(sizeof(arg_thread_t));
- arg->intern = th;
- arg->vmThread = vmThread;
-#ifdef MULTIPLE_GC
- th->GC = mvm::Thread::get()->GC;
-#endif
-
- mvm::Thread::start(&tid, (int (*)(void *))start, (void*)arg);
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMThread_interrupt(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject _vmthread) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaObject* vmthread = (JavaObject*)_vmthread;
-
- while (vm->upcalls->vmdataVMThread->getObjectField(vmthread) == 0)
- mvm::Thread::yield();
-
- JavaThread* th = (JavaThread*)vm->upcalls->vmdataVMThread->getObjectField(vmthread);
- th->lock->lock();
- th->interruptFlag = 1;
-
- // here we could also raise a signal for interrupting I/O
- if (th->state == JavaThread::StateWaiting) {
- th->state = JavaThread::StateInterrupted;
- th->varcond->signal();
- }
-
- th->lock->unlock();
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMThread_interrupted(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
- JavaThread* th = JavaThread::get();
- uint32 interrupt = th->interruptFlag;
- th->interruptFlag = 0;
- return (jboolean)interrupt;
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMThread_isInterrupted(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject _vmthread) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaObject* vmthread = (JavaObject*)_vmthread;
- JavaThread* th = (JavaThread*)vm->upcalls->vmdataVMThread->getObjectField(vmthread);
- return (jboolean)th->interruptFlag;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMThread_nativeSetPriority(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject vmthread, jint prio) {
- // Currently not implemented
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMThread_nativeStop(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject vmthread, jobject exc) {
- // Currently not implemented
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMThread_yield(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
- mvm::Thread::yield();
-}
-
-}
Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp.inc?rev=57293&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp.inc (removed)
@@ -1,119 +0,0 @@
-//===- ClasspathVMClassLoader.cpp - GNU classpath java/lang/VMClassLoader -===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <string.h>
-
-#include "types.h"
-
-#include "mvm/JIT.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;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMThrowable_fillInStackTrace(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
- jobject throwable) {
- Jnjvm* vm = JavaThread::get()->isolate;
- int** stack = (int**)malloc(sizeof(int*) * 100);
- int real_size = mvm::jit::getBacktrace((void**)stack, 100);
- stack[real_size] = 0;
- JavaObject* vmThrowable = vm->upcalls->newVMThrowable->doNew(vm);
- ((JavaObject**)((uint64)vmThrowable + vm->upcalls->vmDataVMThrowable->ptrOffset))[0] = (JavaObject*)stack;
- return (jobject)vmThrowable;
-}
-
-
-JavaObject* consStackElement(JavaMethod* meth, int* ip) {
- Jnjvm* vm = JavaThread::get()->isolate;
- JavaObject* methodName = vm->UTF8ToStr(meth->name);
- Class* cl = meth->classDef;
- JavaObject* className = vm->UTF8ToStr(cl->name->internalToJava(cl->classLoader->hashUTF8, 0, cl->name->size));
- JavaObject* sourceName = 0;
-
- Attribut* sourceAtt = cl->lookupAttribut(Attribut::sourceFileAttribut);
-
- if (sourceAtt) {
- Reader reader(sourceAtt, cl->getBytes());
- uint16 index = reader.readU2();
- sourceName = vm->UTF8ToStr(cl->getConstantPool()->UTF8At(index));
- }
-
- bool native = isNative(meth->access);
-
- UserClass* newS = vm->upcalls->newStackTraceElement;
- JavaObject* res = newS->doNew(vm);
- vm->upcalls->initStackTraceElement->invokeIntSpecial(vm, newS, res,
- sourceName,
- (uint32)ip, className,
- methodName, native);
- return res;
-}
-
-ArrayObject* recGetStackTrace(int** stack, uint32 first, uint32 rec) {
- Jnjvm* vm = JavaThread::get()->isolate;
- if (stack[first] != 0) {
- JavaMethod* meth = JavaJIT::IPToJavaMethod(stack[first]);
- if (meth) {
- ArrayObject* res = recGetStackTrace(stack, first + 1, rec + 1);
- res->elements[rec] = consStackElement(meth, stack[first]);
- return res;
- } else {
- return recGetStackTrace(stack, first + 1, rec);
- }
- } else {
- return (ArrayObject*)vm->upcalls->stackTraceArray->doNew(rec, vm);
- }
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMThrowable_getStackTrace(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject vmthrow, jobject throwable) {
- Jnjvm* vm = JavaThread::get()->isolate;
- int** stack = (int**)vm->upcalls->vmDataVMThrowable->getObjectField((JavaObject*)vmthrow);
- uint32 first = 0;
- sint32 i = 0;
-
- while (stack[i] != 0) {
- JavaMethod* meth = JavaJIT::IPToJavaMethod(stack[i++]);
-#ifdef ISOLATE_SHARING
- if (meth) {
-#else
- if (meth && !meth->classDef->subclassOf(vm->upcalls->newThrowable)) {
-#endif
- first = i - 1;
- break;
- }
- }
- jobject res = (jobject)recGetStackTrace((int**)(uint32**)stack, first, 0);
- free(stack);
- return res;
-}
-
-}
-
More information about the vmkit-commits
mailing list