[vmkit-commits] [vmkit] r73698 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.cpp Reader.cpp VirtualTables.cpp Zip.h
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Thu Jun 18 07:05:11 PDT 2009
Author: geoffray
Date: Thu Jun 18 09:05:06 2009
New Revision: 73698
URL: http://llvm.org/viewvc/llvm-project?rev=73698&view=rev
Log:
Change the previous commit to allocate arrays from bootstrap loader
in the bump pointer allocator.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/Reader.cpp
vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp
vmkit/trunk/lib/JnJVM/VMCore/Zip.h
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=73698&r1=73697&r2=73698&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Thu Jun 18 09:05:06 2009
@@ -287,9 +287,18 @@
cl->asPrimitiveClass()->logSize : (sizeof(JavaObject*) == 8 ? 3 : 2);
VirtualTable* VT = virtualVT;
uint32 size = sizeof(JavaObject) + sizeof(ssize_t) + (n << logSize);
-
- JavaArray* res = (JavaArray*)allocator.Allocate(size, "Array");
- ((void**)res)[0] = VT;
+
+ JavaArray* res = 0;
+
+ // If the allocator is the boostrap allocator, use it.
+ if (&allocator == &(cl->classLoader->bootstrapLoader->allocator)) {
+ res = (JavaArray*)allocator.Allocate(size, "Array");
+ ((void**)res)[0] = VT;
+ } else {
+ // Otherwise, allocate with the GC.
+ Jnjvm* vm = JavaThread::get()->getJVM();
+ res = (JavaArray*)vm->gcAllocator.allocateManagedObject(size, VT);
+ }
res->size = n;
return res;
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/Reader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Reader.cpp?rev=73698&r1=73697&r2=73698&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Reader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Reader.cpp Thu Jun 18 09:05:06 2009
@@ -33,7 +33,7 @@
long nbb = ftell(fp);
fseek(fp, 0, SeekSet);
UserClassArray* array = loader->upcalls->ArrayOfByte;
- res = (ArrayUInt8*)array->doNew((sint32)nbb, 0);
+ res = (ArrayUInt8*)array->doNew((sint32)nbb, loader->allocator);
fread(res->elements, nbb, 1, fp);
fclose(fp);
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp?rev=73698&r1=73697&r2=73698&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp Thu Jun 18 09:05:06 2009
@@ -29,7 +29,6 @@
#include "Jnjvm.h"
#include "JnjvmClassLoader.h"
#include "LockedMap.h"
-#include "Zip.h"
using namespace jnjvm;
@@ -245,11 +244,6 @@
TRACE_DELEGATEE(upcalls->OfLong);
TRACE_DELEGATEE(upcalls->OfDouble);
#undef TRACE_DELEGATEE
-
- for (std::vector<ZipArchive*>::iterator i = bootArchives.begin(),
- e = bootArchives.end(); i!= e; ++i) {
- (*i)->bytes->markAndTrace();
- }
}
//===----------------------------------------------------------------------===//
Modified: vmkit/trunk/lib/JnJVM/VMCore/Zip.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Zip.h?rev=73698&r1=73697&r2=73698&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Zip.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Zip.h Thu Jun 18 09:05:06 2009
@@ -49,9 +49,9 @@
public:
std::map<const char*, ZipFile*, ltstr> filetable;
typedef std::map<const char*, ZipFile*, ltstr>::iterator table_iterator;
- ArrayUInt8* bytes;
private:
+ ArrayUInt8* bytes;
void findOfscd();
void addFiles();
More information about the vmkit-commits
mailing list