[vmkit-commits] [vmkit] r73608 - in /vmkit/trunk/lib/N3: Mono/Mono.cpp VMCore/N3Initialise.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Jun 17 02:50:49 PDT 2009
Author: geoffray
Date: Wed Jun 17 04:50:29 2009
New Revision: 73608
URL: http://llvm.org/viewvc/llvm-project?rev=73608&view=rev
Log:
Disable finalizers for now and workaround for Mono bootstrap.
Also add a couple of missing VT initialization.
Modified:
vmkit/trunk/lib/N3/Mono/Mono.cpp
vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
Modified: vmkit/trunk/lib/N3/Mono/Mono.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/Mono/Mono.cpp?rev=73608&r1=73607&r2=73608&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/Mono/Mono.cpp (original)
+++ vmkit/trunk/lib/N3/Mono/Mono.cpp Wed Jun 17 04:50:29 2009
@@ -117,7 +117,8 @@
}
extern "C" void System_Threading_Monitor_Monitor_exit(VMObject* obj) {
- obj->unlock();
+ // TODO: There's a bug in the bootstrap, see why
+ if (obj->lockObj->owner()) obj->unlock();
}
extern "C" bool System_Threading_Monitor_Monitor_try_enter(VMObject* obj, int ms) {
Modified: vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp?rev=73608&r1=73607&r2=73608&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp Wed Jun 17 04:50:29 2009
@@ -166,13 +166,15 @@
# define INIT(X) { \
X fake; \
- X::VT = ((VirtualTable**)(void*)(&fake))[0]; }
+ X::VT = ((VirtualTable**)(void*)(&fake))[0];\
+ ((void**)X::VT)[0] = 0; }
INIT(Assembly);
INIT(Header);
INIT(Property);
INIT(Param);
INIT(Section);
+ INIT(Stream);
INIT(Table);
INIT(VMArray);
INIT(ArrayUInt8);
@@ -188,6 +190,7 @@
INIT(UTF8);
INIT(VMCommonClass);
INIT(VMClass);
+ INIT(VMClassPointer);
INIT(VMGenericClass);
INIT(VMClassArray);
INIT(VMMethod);
@@ -202,6 +205,7 @@
INIT(N3);
INIT(Reader);
INIT(UTF8Map);
+ INIT(AssemblyMap);
INIT(ClassNameMap);
INIT(ClassTokenMap);
INIT(FieldTokenMap);
More information about the vmkit-commits
mailing list