Add markedtobject
This commit is contained in:
40
src/markedtobject.cpp
Normal file
40
src/markedtobject.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
#include <CrossLang.hpp>
|
||||
|
||||
namespace Tesses::CrossLang
|
||||
{
|
||||
SharedPtrTObject::SharedPtrTObject(GC* gc, TObject o)
|
||||
{
|
||||
this->ls = new GCList(gc);
|
||||
this->ls->Add(o);
|
||||
this->o = o;
|
||||
}
|
||||
TObject& SharedPtrTObject::GetObject()
|
||||
{
|
||||
return this->o;
|
||||
}
|
||||
SharedPtrTObject::~SharedPtrTObject()
|
||||
{
|
||||
if(this->ls)
|
||||
delete this->ls;
|
||||
}
|
||||
GC* SharedPtrTObject::GetGC()
|
||||
{
|
||||
return this->ls->GetGC();
|
||||
}
|
||||
MarkedTObject CreateMarkedTObject(GC* gc, TObject o)
|
||||
{
|
||||
return std::make_shared<SharedPtrTObject>(gc,o);
|
||||
}
|
||||
MarkedTObject CreateMarkedTObject(GC& gc, TObject o)
|
||||
{
|
||||
return CreateMarkedTObject(&gc,o);
|
||||
}
|
||||
MarkedTObject CreateMarkedTObject(GCList* gc, TObject o)
|
||||
{
|
||||
return CreateMarkedTObject(gc->GetGC(),o);
|
||||
}
|
||||
MarkedTObject CreateMarkedTObject(GCList& gc, TObject o)
|
||||
{
|
||||
return CreateMarkedTObject(gc.GetGC(),o);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user