[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