[vmkit-commits] [vmkit] r108058 - in /vmkit/trunk/lib/J3: Classpath/ClasspathMethod.inc Classpath/ClasspathVMStackWalker.inc Compiler/JavaJITCompiler.cpp VMCore/JnjvmClassLoader.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sat Jul 10 14:34:49 PDT 2010


Author: geoffray
Date: Sat Jul 10 16:34:49 2010
New Revision: 108058

URL: http://llvm.org/viewvc/llvm-project?rev=108058&view=rev
Log:
Replace uses of malloc with a ThreadAllocator.


Modified:
    vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc
    vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc
    vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp
    vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc?rev=108058&r1=108057&r2=108058&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc Sat Jul 10 16:34:49 2010
@@ -168,7 +168,6 @@
       exc = th->getJavaException();                                            \
     } END_CATCH;                                                               \
     if (exc) {                                                                 \
-      if (size) delete[] buf;                                                  \
       if (JavaObject::getClass(exc)->isAssignableFrom(                         \
               vm->upcalls->newException)) {                                    \
         th->clearException();                                                  \
@@ -231,12 +230,10 @@
       RUN_METH(JavaObject, res);
     } 
   } else {
-    if (size) delete[] buf;
     vm->illegalArgumentException("wrong number of arguments");
     return NULL;
   }
 
-  if (size) delete[] buf;
   return res;
 }
 

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc?rev=108058&r1=108057&r2=108058&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathVMStackWalker.inc Sat Jul 10 16:34:49 2010
@@ -55,7 +55,6 @@
     delegatee = meth->classDef->getClassDelegatee(vm);;
     ArrayObject::setElement(result, delegatee, i);
   }
-  delete[] buffer;
   
   END_NATIVE_EXCEPTION
   

Modified: vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp?rev=108058&r1=108057&r2=108058&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp Sat Jul 10 16:34:49 2010
@@ -440,7 +440,6 @@
   vm->runApplication(argc + 1, newArgv);
   vm->waitForExit();
   
-  delete[] newArgv;
   return 0;
 }
 

Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp?rev=108058&r1=108057&r2=108058&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp Sat Jul 10 16:34:49 2010
@@ -567,8 +567,8 @@
                                           bool doThrow) {
   
   llvm_gcroot(str, 0);
-  
-  UTF8* name = (UTF8*)malloc(sizeof(UTF8) + str->count * sizeof(uint16));
+  mvm::ThreadAllocator allocator; 
+  UTF8* name = (UTF8*)allocator.Allocate(sizeof(UTF8) + str->count * sizeof(uint16));
  
   name->size = str->count;
   if (ArrayUInt16::getElement(JavaString::getValue(str), str->offset) != I_TAB) {
@@ -576,7 +576,6 @@
       uint16 cur = ArrayUInt16::getElement(JavaString::getValue(str), str->offset + i);
       if (cur == '.') name->elements[i] = '/';
       else if (cur == '/') {
-        free(name);
         return 0;
       }
       else name->elements[i] = cur;
@@ -587,7 +586,6 @@
       if (cur == '.') {
         name->elements[i] = '/';
       } else if (cur == '/') {
-        free(name);
         return 0;
       } else {
         name->elements[i] = cur;
@@ -596,23 +594,25 @@
   }
     
   UserCommonClass* cls = loadClassFromUserUTF8(name, doResolve, doThrow, str);
-  free(name);
   return cls;
 }
 
 UserCommonClass* JnjvmClassLoader::lookupClassFromJavaString(JavaString* str) {
   
+  const ArrayUInt16* value = NULL;
   llvm_gcroot(str, 0);
+  llvm_gcroot(value, 0);
+  value = JavaString::getValue(str);
+  mvm::ThreadAllocator allocator; 
   
-  UTF8* name = (UTF8*)malloc(sizeof(UTF8) + str->count * sizeof(uint16));
+  UTF8* name = (UTF8*)allocator.Allocate(sizeof(UTF8) + str->count * sizeof(uint16));
   name->size = str->count;
   for (sint32 i = 0; i < str->count; ++i) {
-    uint16 cur = ArrayUInt16::getElement(JavaString::getValue(str), str->offset + i);
+    uint16 cur = ArrayUInt16::getElement(value, str->offset + i);
     if (cur == '.') name->elements[i] = '/';
     else name->elements[i] = cur;
   }
   UserCommonClass* cls = lookupClass(name);
-  free(name);
   return cls;
 }
 





More information about the vmkit-commits mailing list