[vmkit-commits] [vmkit] r120124 - in /vmkit/branches/precise/mmtk/mmtk-j3: RuntimeHelpers.cpp Strings.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Nov 24 14:03:02 PST 2010


Author: geoffray
Date: Wed Nov 24 16:03:02 2010
New Revision: 120124

URL: http://llvm.org/viewvc/llvm-project?rev=120124&view=rev
Log:
Don't use functions from J3 that assume GC-allocated objects.


Modified:
    vmkit/branches/precise/mmtk/mmtk-j3/RuntimeHelpers.cpp
    vmkit/branches/precise/mmtk/mmtk-j3/Strings.cpp

Modified: vmkit/branches/precise/mmtk/mmtk-j3/RuntimeHelpers.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/precise/mmtk/mmtk-j3/RuntimeHelpers.cpp?rev=120124&r1=120123&r2=120124&view=diff
==============================================================================
--- vmkit/branches/precise/mmtk/mmtk-j3/RuntimeHelpers.cpp (original)
+++ vmkit/branches/precise/mmtk/mmtk-j3/RuntimeHelpers.cpp Wed Nov 24 16:03:02 2010
@@ -14,11 +14,9 @@
 using namespace j3;
 
 extern "C" uint16_t MMTkCharAt(JavaString* str, uint32_t index) {
-  llvm_gcroot(str, 0);
-  return ArrayUInt16::getElement(JavaString::getValue(str), index);
+  return str->value->elements[index];
 }
 
 extern "C" JavaObject* MMTkGetClass(JavaObject* obj) {
-  llvm_gcroot(obj, 0);
-  return JavaObject::getClass(obj)->delegatee[0];
+  return ((JavaVirtualTable*)obj->getVirtualTable())->cl->delegatee[0];
 }

Modified: vmkit/branches/precise/mmtk/mmtk-j3/Strings.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/precise/mmtk/mmtk-j3/Strings.cpp?rev=120124&r1=120123&r2=120124&view=diff
==============================================================================
--- vmkit/branches/precise/mmtk/mmtk-j3/Strings.cpp (original)
+++ vmkit/branches/precise/mmtk/mmtk-j3/Strings.cpp Wed Nov 24 16:03:02 2010
@@ -17,23 +17,18 @@
 extern "C" void Java_org_j3_mmtk_Strings_write___3CI(JavaObject* str,
                                                      ArrayUInt16* msg,
                                                      sint32 len) {
-  llvm_gcroot(str, 0);
-  llvm_gcroot(msg, 0);
   for (sint32 i = 0; i < len; ++i) {
-    fprintf(stderr, "%c", ArrayUInt16::getElement(msg, i));
+    fprintf(stderr, "%c", msg->elements[i]);
   }
 }
 
 extern "C" void Java_org_j3_mmtk_Strings_writeThreadId___3CI(JavaObject* str,
                                                              ArrayUInt16* msg,
                                                              sint32 len) {
-  llvm_gcroot(str, 0);
-  llvm_gcroot(msg, 0);
-  
   fprintf(stderr, "[%p] ", (void*)JavaThread::get());
   
   for (sint32 i = 0; i < len; ++i) {
-    fprintf(stderr, "%c", ArrayUInt16::getElement(msg, i));
+    fprintf(stderr, "%c", msg->elements[i]);
   }
 }
 
@@ -42,16 +37,12 @@
 Java_org_j3_mmtk_Strings_copyStringToChars__Ljava_lang_String_2_3CII(
     JavaObject* obj, JavaString* str, ArrayUInt16* dst, uint32 dstBegin,
     uint32 dstEnd) {
-  llvm_gcroot(str, 0);
-  llvm_gcroot(obj, 0);
-  llvm_gcroot(dst, 0);
 
   sint32 len = str->count;
   sint32 n = (dstBegin + len <= dstEnd) ? len : (dstEnd - dstBegin);
 
   for (sint32 i = 0; i < n; i++) {
-    ArrayUInt16::setElement(dst,
-        ArrayUInt16::getElement(JavaString::getValue(str), str->offset + i), dstBegin + i);
+    dst->elements[dstBegin + i] = str->value->elements[str->offset + i];
   }
   
   return n;





More information about the vmkit-commits mailing list