[vmkit-commits] [vmkit] r108049 - in /vmkit/trunk/lib/J3: Classpath/ClasspathReflect.h Classpath/ClasspathVMStackWalker.inc Classpath/JavaUpcalls.cpp Compiler/JavaJIT.cpp VMCore/Jnjvm.cpp VMCore/Jnjvm.h VMCore/JnjvmClassLoader.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sat Jul 10 12:01:50 PDT 2010


Author: geoffray
Date: Sat Jul 10 14:01:50 2010
New Revision: 108049

URL: http://llvm.org/viewvc/llvm-project?rev=108049&view=rev
Log:
Continue code cleanup and add some missing llvm_gcroot.


Modified:
    vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h
    vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc
    vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
    vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp
    vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/J3/VMCore/Jnjvm.h
    vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h?rev=108049&r1=108048&r2=108049&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h Sat Jul 10 14:01:50 2010
@@ -151,6 +151,7 @@
 
 public:
   static void staticDestructor(JavaObjectVMThread* obj) {
+    llvm_gcroot(obj, 0);
     mvm::Thread::releaseThread(obj->vmdata);
   }
   

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc?rev=108049&r1=108048&r2=108049&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc Sat Jul 10 14:01:50 2010
@@ -30,8 +30,10 @@
 #endif
 ) {
 
-  ArrayObject* result = 0;
+  ArrayObject* result = NULL;
+  JavaObject* delegatee = NULL;
   llvm_gcroot(result, 0);
+  llvm_gcroot(delegatee, 0);
 
   BEGIN_NATIVE_EXCEPTION(0)
 
@@ -49,7 +51,8 @@
   for (uint32 i = 0; i != finalSize; ++i) {
     JavaMethod* meth = ((JavaMethod**)buffer)[i];
     assert(meth && "Wrong stack trace");
-    ArrayObject::setElement(result, meth->classDef->getClassDelegatee(vm), i);
+    delegatee = meth->classDef->getClassDelegatee(vm);;
+    ArrayObject::setElement(result, delegatee, i);
   }
   delete[] buffer;
   

Modified: vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp?rev=108049&r1=108048&r2=108049&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp Sat Jul 10 14:01:50 2010
@@ -522,6 +522,7 @@
 }
 
 extern "C" void nativeJavaObjectVMThreadDestructor(JavaObjectVMThread* obj) {
+  llvm_gcroot(obj, 0);
   JavaObjectVMThread::staticDestructor(obj);
 }
 

Modified: vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp?rev=108049&r1=108048&r2=108049&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp Sat Jul 10 14:01:50 2010
@@ -531,7 +531,7 @@
       compilingMethod->codeInfo[i].bytecode = codeInfo[i].bytecode;
     }
   } else {
-    compilingMethod->codeInfo == NULL;
+    compilingMethod->codeInfo = NULL;
   }
  
   return llvmFunction;
@@ -1368,7 +1368,7 @@
       compilingMethod->codeInfo[i].bytecode = codeInfo[i].bytecode;
     }
   } else {
-    compilingMethod->codeInfo == NULL;
+    compilingMethod->codeInfo = NULL;
   }
 
   return llvmFunction;

Modified: vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp?rev=108049&r1=108048&r2=108049&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp Sat Jul 10 14:01:50 2010
@@ -1447,19 +1447,6 @@
 #endif
 }
 
-const UTF8* Jnjvm::asciizToInternalUTF8(const char* asciiz) {
-  uint32 size = strlen(asciiz);
-  UTF8* tmp = (UTF8*)upcalls->ArrayOfChar->doNew(size, this);
-  uint16* buf = tmp->elements;
-  
-  for (uint32 i = 0; i < size; i++) {
-    if (asciiz[i] == '.') buf[i] = '/';
-    else buf[i] = asciiz[i];
-  }
-  return (const UTF8*)tmp;
-
-}
-  
 ArrayUInt16* Jnjvm::asciizToArray(const char* asciiz) {
   ArrayUInt16* tmp = NULL;
   llvm_gcroot(tmp, 0);

Modified: vmkit/trunk/lib/J3/VMCore/Jnjvm.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Jnjvm.h?rev=108049&r1=108048&r2=108049&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/J3/VMCore/Jnjvm.h Sat Jul 10 14:01:50 2010
@@ -294,11 +294,6 @@
   ///
   JavaString* internalUTF8ToStr(const UTF8* utf8);
      
-  /// asciizToInternalUTF8 - Constructs an UTF8 out of the asciiz and changes
-  /// '.' into '/'.
-  ///
-  const UTF8* asciizToInternalUTF8(const char* asciiz);
-  
   /// asciizToUTF8 - Constructs an UTF8 out of the asciiz.
   ///
   ArrayUInt16* asciizToArray(const char* asciiz);

Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp?rev=108049&r1=108048&r2=108049&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp Sat Jul 10 14:01:50 2010
@@ -332,7 +332,6 @@
     char* buf = (char*)alloca(strLen + alen + 7);
 
     sprintf(buf, "%s%s.class", str, asciiz);
-    // This array is not allocated by the GC.
     res = Reader::openFile(this, buf);
     if (res) return res;
   }
@@ -577,15 +576,23 @@
     for (sint32 i = 0; i < str->count; ++i) {
       uint16 cur = ArrayUInt16::getElement(JavaString::getValue(str), str->offset + i);
       if (cur == '.') name->elements[i] = '/';
-      else if (cur == '/') return 0;
+      else if (cur == '/') {
+        free(name);
+        return 0;
+      }
       else name->elements[i] = cur;
     }
   } else {
     for (sint32 i = 0; i < str->count; ++i) {
       uint16 cur = ArrayUInt16::getElement(JavaString::getValue(str), str->offset + i);
-      if (cur == '.') name->elements[i] = '/';
-      else if (cur == '/') return 0;
-      else name->elements[i] = cur;
+      if (cur == '.') {
+        name->elements[i] = '/';
+      } else if (cur == '/') {
+        free(name);
+        return 0;
+      } else {
+        name->elements[i] = cur;
+      }
     }
   }
     





More information about the vmkit-commits mailing list