1 #include "MutatorThread.h"
2 #include "vmkit/System.h"
3 #include "vmkit/Locks.h"
4 #include "vmkit/Thread.h"
5 #include "vmkit/VirtualMachine.h"
11 class ScilabThread : public vmkit::MutatorThread
14 int argc, iFileIndex, iLangIndex, ret;
18 void setArgs(int argc, char** argv, int iFileIndex, int iLangIndex);
26 ScilabThread (ScilabVM* vm);
31 class ScilabVM : public vmkit::VirtualMachine
37 vmkit::BumpPtrAllocator Alloc;
38 vmkit::CompiledFrames **frames;
40 ScilabVM (vmkit::BumpPtrAllocator& Alloc, vmkit::CompiledFrames** frames) : VirtualMachine(Alloc, frames) {}
43 virtual void startCollection() {}
44 virtual void endCollection() {}
45 virtual void scanWeakReferencesQueue(word_t closure) {}
46 virtual void scanSoftReferencesQueue(word_t closure) {}
47 virtual void scanPhantomReferencesQueue(word_t closure) {}
48 virtual void scanFinalizationQueue(word_t closure) {}
49 virtual void addFinalizationCandidate(gc* obj) {}
50 virtual void finalizeObject(gc* res) {}
51 virtual void traceObject(gc* obj, word_t closure) {}
52 virtual void setType(gc* header, void* type) {}
53 virtual void setType(void* header, void* type) {}
54 virtual void* getType(gc* obj) {}
55 virtual size_t getObjectSize(gc* obj) {}
56 virtual const char* getObjectTypeName(gc* obj) {}
57 virtual bool isCorruptedType(gc* header) {}
58 virtual void printMethod(vmkit::FrameInfo* FI, word_t ip, word_t addr) {}
59 virtual void invokeEnqueueReference(gc* res) {}
60 virtual void clearObjectReferent(gc* ref) {}
61 virtual gc** getObjectReferentPtr(gc* _obj) {}
62 virtual void setObjectReferent(gc* _obj, gc* val) {}
64 virtual void runApplication(int argc, char** argv) {}
66 virtual void runApplication(int argc, char** argv, int iFileIndex, int iLangIndex);
68 virtual void nullPointerException() {}
69 virtual void stackOverflowError() {}
71 static void mainStart(ScilabThread* thread);