mkh
2013-Sep-18 11:44 UTC
[LLVMdev] Error on completing ToyThread::execute() in ToyVM (vmkit project)
-- Hi all, My code is: TOY_VAR(Picture*, aPic); aPic = Picture::doNew(-2, 1, -1, 1, 1900, 1200); This code has the following compilation error: ../lib/ToyRoot.h:41:33: error: no member named 'getVirtualTable' in 'Toy::Picture' res = gc::operator new(sz, o.getVirtualTable()); ~ ^ Is it correct? Best regards, Mkh
Harris Bakiras
2013-Sep-18 13:13 UTC
[LLVMdev] Error on completing ToyThread::execute() in ToyVM (vmkit project)
Hi, The VMKit framework has been updated to be more generic. The getVirtualTable method is not exposed anymore since this method suppose that your object layout contains a virtual table. Now you have new methods to get / set objects type which are virtual methods inherited by the vmkit::VirtualMachine class. Thus you can still keep your object identity as virtual tables, but now the getVirtualTable is a static method provided by the VirtualTable class. -- Harris Bakiras -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of mkh Sent: mercredi 18 septembre 2013 13:44 To: LLVMdev Subject: [LLVMdev] Error on completing ToyThread::execute() in ToyVM (vmkit project) -- Hi all, My code is: TOY_VAR(Picture*, aPic); aPic = Picture::doNew(-2, 1, -1, 1, 1900, 1200); This code has the following compilation error: ../lib/ToyRoot.h:41:33: error: no member named 'getVirtualTable' in 'Toy::Picture' res = gc::operator new(sz, o.getVirtualTable()); ~ ^ Is it correct? Best regards, Mkh _______________________________________________ LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
mkh
2013-Sep-21 12:46 UTC
[LLVMdev] Error on completing ToyThread::execute() in ToyVM (vmkit project)
Hi all, I changed the the operator new method of ToyRoot class as follows: template <class T> void* operator new(size_t sz, int param=0) { void* res = 0; llvm_gcroot(res, 0); static T o; VirtualTable *tmp; tmp=const_cast<VirtualTable*>(VirtualTable::getVirtualTable((gc*)&o)); res = gc::operator new(sz, tmp); return res; } By running the "static T o" the following message printed: toyVM: ../lib/ToyRoot.h:31: Toy::ToyRoot::ToyRoot(): Assertion `false' failed. Best regards, Mkh On Wed, 2013-09-18 at 15:13 +0200, Harris Bakiras wrote:> Hi, > > The VMKit framework has been updated to be more generic. > The getVirtualTable method is not exposed anymore since this method suppose > that your object layout contains a virtual table. > Now you have new methods to get / set objects type which are virtual methods > inherited by the vmkit::VirtualMachine class. > > Thus you can still keep your object identity as virtual tables, but now the > getVirtualTable is a static method provided by the VirtualTable class. > > -- > Harris Bakiras > > -----Original Message----- > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On > Behalf Of mkh > Sent: mercredi 18 septembre 2013 13:44 > To: LLVMdev > Subject: [LLVMdev] Error on completing ToyThread::execute() in ToyVM (vmkit > project) > > > -- > Hi all, > > My code is: > TOY_VAR(Picture*, aPic); > aPic = Picture::doNew(-2, 1, -1, 1, 1900, 1200); > > This code has the following compilation error: > ../lib/ToyRoot.h:41:33: error: no member named 'getVirtualTable' in > 'Toy::Picture' > res = gc::operator new(sz, o.getVirtualTable()); > ~ ^ Is it correct? > > Best regards, > Mkh > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >