[vmkit-commits] [vmkit] r198512 - By default, push a local reference in javaClass, stringAt, javaClassLoader and *ToString

Gael Thomas gael.thomas at lip6.fr
Sat Jan 4 13:57:58 PST 2014


Author: gthomas
Date: Sat Jan  4 15:57:58 2014
New Revision: 198512

URL: http://llvm.org/viewvc/llvm-project?rev=198512&view=rev
Log:
By default, push a local reference in javaClass, stringAt, javaClassLoader and *ToString

Modified:
    vmkit/branches/mcjit/include/j3/j3.h
    vmkit/branches/mcjit/include/j3/j3class.h
    vmkit/branches/mcjit/include/j3/j3classloader.h
    vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
    vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
    vmkit/branches/mcjit/lib/j3/vm/j3jni.cc

Modified: vmkit/branches/mcjit/include/j3/j3.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3.h?rev=198512&r1=198511&r2=198512&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3.h (original)
+++ vmkit/branches/mcjit/include/j3/j3.h Sat Jan  4 15:57:58 2014
@@ -123,9 +123,9 @@ namespace j3 {
 
 		J3Options*                 options() { return &_options; }
 		vmkit::Names*              names() { return &_names; }
-		J3ObjectHandle*            utfToString(const char* name, bool doPush);
-		J3ObjectHandle*            nameToString(const vmkit::Name* name, bool doPush);
-		J3ObjectHandle*            arrayToString(J3ObjectHandle* array, bool doPush);
+		J3ObjectHandle*            utfToString(const char* name, bool doPush=1);
+		J3ObjectHandle*            nameToString(const vmkit::Name* name, bool doPush=1);
+		J3ObjectHandle*            arrayToString(J3ObjectHandle* array, bool doPush=1);
 
 		void                       run();
 		void                       start(int argc, char** argv);

Modified: vmkit/branches/mcjit/include/j3/j3class.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3class.h?rev=198512&r1=198511&r2=198512&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3class.h (original)
+++ vmkit/branches/mcjit/include/j3/j3class.h Sat Jan  4 15:57:58 2014
@@ -63,7 +63,7 @@ namespace j3 {
 	public:
 		J3Type(J3ClassLoader* loader, const vmkit::Name* name);
 
-		J3ObjectHandle*             javaClass(bool doPush);
+		J3ObjectHandle*             javaClass(bool doPush=1);
 
 		virtual uint32_t            logSize() = 0;
 		uint64_t                    getSizeInBits();

Modified: vmkit/branches/mcjit/include/j3/j3classloader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3classloader.h?rev=198512&r1=198511&r2=198512&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3classloader.h (original)
+++ vmkit/branches/mcjit/include/j3/j3classloader.h Sat Jan  4 15:57:58 2014
@@ -64,7 +64,7 @@ namespace j3 {
 
 		J3GlobalReferences*           globalReferences() { return &_globalReferences; }
 		
-		J3ObjectHandle*               javaClassLoader() { return _javaClassLoader; }
+		J3ObjectHandle*               javaClassLoader(bool doPush=1);
 
 		J3*                           vm() const { return (J3*)vmkit::CompilationUnit::vm(); };
 

Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc?rev=198512&r1=198511&r2=198512&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc Sat Jan  4 15:57:58 2014
@@ -66,7 +66,7 @@ jstring JNICALL JVM_InternString(JNIEnv*
 	
 	J3Utf16Decoder::decode(value, copy);
 
-	res = vm->utfToString(copy, 1);
+	res = vm->utfToString(copy);
 
 	leaveJVM(); 
 	return res;
@@ -400,7 +400,7 @@ jclass JNICALL JVM_GetCallerClass(JNIEnv
 	if(!caller)
 		J3::internalError("unable to find caller class, what should I do?");
 
-	res = caller->cl()->javaClass(1);
+	res = caller->cl()->javaClass();
 
 	leaveJVM(); 
 
@@ -443,7 +443,7 @@ jclass JNICALL JVM_FindPrimitiveClass(JN
 	else
 		J3::internalError("unsupported primitive: %s", utf);
 
-	res = cl->javaClass(1);
+	res = cl->javaClass();
 	leaveJVM(); 
 	return res;
 }
@@ -484,7 +484,7 @@ jclass JNICALL JVM_FindClassFromClassLoa
 	else
 		cl->resolve();
 
-	res = cl->javaClass(1);
+	res = cl->javaClass();
 
 	leaveJVM(); 
 	return res;

Modified: vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc?rev=198512&r1=198511&r2=198512&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc Sat Jan  4 15:57:58 2014
@@ -15,6 +15,7 @@
 #include "j3/j3method.h"
 #include "j3/j3lib.h"
 #include "j3/j3mangler.h"
+#include "j3/j3thread.h"
 
 using namespace j3;
 
@@ -36,6 +37,10 @@ J3ClassLoader::J3ClassLoader(J3* v, J3Ob
 	_javaClassLoader = globalReferences()->add(javaClassLoader);
 }
 
+J3ObjectHandle* J3ClassLoader::javaClassLoader(bool doPush) { 
+	return (_javaClassLoader && doPush) ? J3Thread::get()->push(_javaClassLoader) : _javaClassLoader;
+}
+
 uint32_t J3ClassLoader::interfaceIndex(J3Method* method) {
 	pthread_mutex_lock(&_mutexInterfaces);
 	InterfaceMethodRefMap::iterator it = interfaces.find(method);

Modified: vmkit/branches/mcjit/lib/j3/vm/j3jni.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3jni.cc?rev=198512&r1=198511&r2=198512&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3jni.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3jni.cc Sat Jan  4 15:57:58 2014
@@ -26,7 +26,7 @@ jclass JNICALL FindClass(JNIEnv* env, co
 	J3ClassLoader* loader = m ? m->cl()->loader() : J3Thread::get()->vm()->initialClassLoader;
 	J3Class* cl = loader->loadClass(loader->vm()->names()->get(name));
 	cl->initialise();
-	res = cl->javaClass(1);
+	res = cl->javaClass();
 	leaveJVM(); 
 
 	return res;
@@ -41,7 +41,7 @@ jclass JNICALL GetSuperclass(JNIEnv* env
 	jclass res;
 	enterJVM();
 	J3ObjectType* cl = J3ObjectType::nativeClass(sub);
-	res = J3Thread::get()->vm()->objectClass ? 0 : cl->javaClass(1);
+	res = J3Thread::get()->vm()->objectClass ? 0 : cl->javaClass();
 	leaveJVM(); 
 	return res;
 }
@@ -131,7 +131,7 @@ jclass JNICALL GetObjectClass(JNIEnv* en
 	jclass res;
 
 	enterJVM(); 
-	res = obj->vt()->type()->asObjectType()->javaClass(1);
+	res = obj->vt()->type()->asObjectType()->javaClass();
 	leaveJVM(); 
 
 	return res;
@@ -423,7 +423,7 @@ jstring JNICALL NewStringUTF(JNIEnv* env
 	jstring res;
 
 	enterJVM(); 
-	res = J3Thread::get()->vm()->utfToString(utf, 1);
+	res = J3Thread::get()->vm()->utfToString(utf);
 	leaveJVM(); 
 
 	return res;





More information about the vmkit-commits mailing list