[vmkit-commits] [vmkit] r145386 - /vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon Nov 28 22:55:47 PST 2011
Author: geoffray
Date: Tue Nov 29 00:55:47 2011
New Revision: 145386
URL: http://llvm.org/viewvc/llvm-project?rev=145386&view=rev
Log:
Protect the strings link list of a class loader when creating a new link.
Modified:
vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp
Modified: vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp?rev=145386&r1=145385&r2=145386&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp Tue Nov 29 00:55:47 2011
@@ -1045,13 +1045,14 @@
JavaString** StringList::addString(JnjvmClassLoader* JCL, JavaString* obj) {
llvm_gcroot(obj, 0);
+ JCL->lock.lock();
if (length == MAXIMUM_STRINGS) {
StringList* next = new(JCL->allocator, "StringList") StringList();
next->prev = this;
JCL->strings = next;
+ JCL->lock.unlock();
return next->addString(JCL, obj);
} else {
- JCL->lock.lock();
vmkit::Collector::objectReferenceNonHeapWriteBarrier(
(gc**)&(strings[length]), (gc*)obj);
JavaString** res = &strings[length++];
More information about the vmkit-commits
mailing list