[vmkit-commits] [vmkit] r84084 - in /vmkit/trunk: include/mvm/Object.h lib/Mvm/Runtime/Object.cpp lib/N3/VMCore/N3Initialise.cpp lib/N3/VMCore/VMArray.h lib/N3/VMCore/VMObject.cpp lib/N3/VMCore/VMObject.h lib/N3/VMCore/VirtualTables.cpp
Gael Thomas
gael.thomas at lip6.fr
Wed Oct 14 04:25:29 PDT 2009
Author: gthomas
Date: Wed Oct 14 06:25:28 2009
New Revision: 84084
URL: http://llvm.org/viewvc/llvm-project?rev=84084&view=rev
Log:
Remove vt from arrays. Define default functions for the vt in Object.h.
Modified:
vmkit/trunk/include/mvm/Object.h
vmkit/trunk/lib/Mvm/Runtime/Object.cpp
vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
vmkit/trunk/lib/N3/VMCore/VMArray.h
vmkit/trunk/lib/N3/VMCore/VMObject.cpp
vmkit/trunk/lib/N3/VMCore/VMObject.h
vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
Modified: vmkit/trunk/include/mvm/Object.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/Object.h?rev=84084&r1=84083&r2=84084&view=diff
==============================================================================
--- vmkit/trunk/include/mvm/Object.h (original)
+++ vmkit/trunk/include/mvm/Object.h Wed Oct 14 06:25:28 2009
@@ -32,18 +32,22 @@
///
class Object : public gc {
public:
+ static void default_tracer(gc *o) {}
+ static intptr_t default_hashcode(gc *o) { return (intptr_t)o; }
+ static void default_print(const gc *o, PrintBuffer *buf);
+
/// tracer - Default implementation of tracer. Does nothing.
///
- virtual void tracer() {}
+ virtual void tracer() { default_tracer(this); }
/// print - Default implementation of print.
///
- virtual void print(PrintBuffer *buf) const;
+ virtual void print(PrintBuffer *buf) const { default_print(this, buf); }
/// hashCode - Default implementation of hashCode. Returns the address
/// of this object.
///
- virtual intptr_t hashCode(){ return (intptr_t)this;}
+ virtual intptr_t hashCode(){ return default_hashcode(this);}
};
Modified: vmkit/trunk/lib/Mvm/Runtime/Object.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Runtime/Object.cpp?rev=84084&r1=84083&r2=84084&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/Runtime/Object.cpp (original)
+++ vmkit/trunk/lib/Mvm/Runtime/Object.cpp Wed Oct 14 06:25:28 2009
@@ -48,9 +48,10 @@
buf->write(a);
}
-void Object::print(PrintBuffer *buf) const {
+void Object::default_print(const gc *o, PrintBuffer *buf) {
+ llvm_gcroot(o, 0);
buf->write("<Object@");
- buf->writePtr((void*)this);
+ buf->writePtr((void*)o);
buf->write(">");
}
Modified: vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp?rev=84084&r1=84083&r2=84084&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp Wed Oct 14 06:25:28 2009
@@ -172,10 +172,6 @@
INIT(VMObject);
INIT(CLIString);
-#define INIT_ARRAY(name, elmt, nbb, printer, pre, sep, post) INIT(Array##name)
- ON_ARRAY_CLASSES(INIT_ARRAY);
-#undef INIT_ARRAY
-
#undef INIT
}
Modified: vmkit/trunk/lib/N3/VMCore/VMArray.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMArray.h?rev=84084&r1=84083&r2=84084&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMArray.h (original)
+++ vmkit/trunk/lib/N3/VMCore/VMArray.h Wed Oct 14 06:25:28 2009
@@ -64,7 +64,6 @@
class Array##name : public VMObject { \
void *operator new(size_t n) { return VMObject::operator new(n, 0); } \
public: \
- static N3VirtualTable* VT; \
static const llvm::Type* llvmType; \
sint32 size; \
elmt elements[1]; \
Modified: vmkit/trunk/lib/N3/VMCore/VMObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMObject.cpp?rev=84084&r1=84083&r2=84084&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMObject.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VMObject.cpp Wed Oct 14 06:25:28 2009
@@ -18,6 +18,8 @@
using namespace n3;
+N3VirtualTable LockObj::_VT(LockObj::_destroy, 0, mvm::no_tracer, LockObj::_print, )
+
void *N3VirtualTable::operator new(size_t size, size_t totalVtSize) {
//printf("Allocate N3VirtualTable with %d elements\n", totalVtSize);
return malloc(totalVtSize * sizeof(uintptr_t));
Modified: vmkit/trunk/lib/N3/VMCore/VMObject.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMObject.h?rev=84084&r1=84083&r2=84084&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMObject.h (original)
+++ vmkit/trunk/lib/N3/VMCore/VMObject.h Wed Oct 14 06:25:28 2009
@@ -45,6 +45,7 @@
class LockObj : public mvm::Object {
public:
+ static N3VirtualTable _VT;
static N3VirtualTable* VT;
mvm::LockRecursive lock;
std::vector<VMThread*> threads;
@@ -53,6 +54,9 @@
virtual void print(mvm::PrintBuffer* buf) const;
virtual void TRACER;
+
+ static void _destroy(LockObj *);
+ static void _print(LockObj *);
void notify();
void notifyAll();
Modified: vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp?rev=84084&r1=84083&r2=84084&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp Wed Oct 14 06:25:28 2009
@@ -29,10 +29,6 @@
INIT(VMObject);
INIT(CLIString);
-#define INIT_ARRAY(name, elmt, size, printer, pre, sep, post) INIT(Array##name);
-ON_ARRAY_CLASSES(INIT_ARRAY)
-#undef INIT_ARRAY
-
#undef INIT
#ifdef MULTIPLE_GC
More information about the vmkit-commits
mailing list