[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