Make AssessorDesc a non-gc class.
llvm-svn: 51382
diff --git a/vmkit/lib/JnJVM/VMCore/JavaInitialise.cpp b/vmkit/lib/JnJVM/VMCore/JavaInitialise.cpp
index c15f5fe7..1c13465 100644
--- a/vmkit/lib/JnJVM/VMCore/JavaInitialise.cpp
+++ b/vmkit/lib/JnJVM/VMCore/JavaInitialise.cpp
@@ -46,13 +46,10 @@
INIT(CommonClass);
INIT(Class);
INIT(ClassArray);
- INIT(JavaMethod);
- INIT(JavaField);
INIT(JavaCond);
INIT(LockObj);
INIT(JavaObject);
INIT(JavaThread);
- INIT(AssessorDesc);
INIT(Typedef);
INIT(Signdef);
INIT(ThreadSystem);
@@ -67,8 +64,6 @@
INIT(jnjvm::TypeMap);
INIT(JavaIsolate);
INIT(JavaString);
- INIT(CacheNode);
- INIT(Enveloppe);
#ifdef SERVICE_VM
INIT(ServiceDomain);
#endif
diff --git a/vmkit/lib/JnJVM/VMCore/JavaTypes.cpp b/vmkit/lib/JnJVM/VMCore/JavaTypes.cpp
index 69d8c16..44376ec 100644
--- a/vmkit/lib/JnJVM/VMCore/JavaTypes.cpp
+++ b/vmkit/lib/JnJVM/VMCore/JavaTypes.cpp
@@ -57,7 +57,7 @@
Jnjvm* vm, uint8 nid,
const char* assocName, ClassArray* cl,
arrayCtor_t ctor) {
- AssessorDesc* res = vm_new(vm, AssessorDesc)();
+ AssessorDesc* res = new AssessorDesc();
res->numId = nid;
res->doTrace = dt;
res->byteId = bid;
@@ -136,25 +136,14 @@
0, 0,
(arrayCtor_t)ArrayObject::acons);
- mvm::Object::pushRoot((mvm::Object*)dParg);
- mvm::Object::pushRoot((mvm::Object*)dPard);
- mvm::Object::pushRoot((mvm::Object*)dVoid);
- mvm::Object::pushRoot((mvm::Object*)dBool);
- mvm::Object::pushRoot((mvm::Object*)dByte);
- mvm::Object::pushRoot((mvm::Object*)dChar);
- mvm::Object::pushRoot((mvm::Object*)dShort);
- mvm::Object::pushRoot((mvm::Object*)dInt);
- mvm::Object::pushRoot((mvm::Object*)dFloat);
- mvm::Object::pushRoot((mvm::Object*)dLong);
- mvm::Object::pushRoot((mvm::Object*)dDouble);
- mvm::Object::pushRoot((mvm::Object*)dTab);
- mvm::Object::pushRoot((mvm::Object*)dRef);
}
-void AssessorDesc::print(mvm::PrintBuffer* buf) const {
+const char* AssessorDesc::printString() const {
+ mvm::PrintBuffer *buf= mvm::PrintBuffer::alloc();
buf->write("AssessorDescriptor<");
buf->write(asciizName);
buf->write(">");
+ return buf->contents()->cString();
}
static void typeError(const UTF8* name, short int l) {
diff --git a/vmkit/lib/JnJVM/VMCore/JavaTypes.h b/vmkit/lib/JnJVM/VMCore/JavaTypes.h
index 17398d1..c25eb29 100644
--- a/vmkit/lib/JnJVM/VMCore/JavaTypes.h
+++ b/vmkit/lib/JnJVM/VMCore/JavaTypes.h
@@ -43,7 +43,7 @@
typedef JavaArray* (*arrayCtor_t)(uint32 len, CommonClass* cl, Jnjvm* vm);
-class AssessorDesc : public mvm::Object {
+class AssessorDesc {
public:
static VirtualTable *VT;
static const char I_TAB;
@@ -98,8 +98,7 @@
static void initialise(Jnjvm* vm);
- virtual void print(mvm::PrintBuffer* buf) const;
- virtual void TRACER;
+ const char* printString() const;
static void analyseIntern(const UTF8* name, uint32 pos,
uint32 meth, AssessorDesc*& ass,
diff --git a/vmkit/lib/JnJVM/VMCore/VirtualTables.cpp b/vmkit/lib/JnJVM/VMCore/VirtualTables.cpp
index 8febd25..17c5550 100644
--- a/vmkit/lib/JnJVM/VMCore/VirtualTables.cpp
+++ b/vmkit/lib/JnJVM/VMCore/VirtualTables.cpp
@@ -49,7 +49,6 @@
INIT(LockObj);
INIT(JavaObject);
INIT(JavaThread);
- INIT(AssessorDesc);
INIT(Typedef);
INIT(Signdef);
INIT(ThreadSystem);
@@ -87,7 +86,6 @@
#define ARRAYTRACER(name) \
void name::TRACER { \
- classOf->MARK_AND_TRACE; \
lockObj->MARK_AND_TRACE; \
}
@@ -175,9 +173,6 @@
pendingException->MARK_AND_TRACE;
}
-void AssessorDesc::TRACER {
-}
-
void Typedef::TRACER {
}