Files
crosslang/src/markedtobject.cpp
2025-04-14 14:03:05 -05:00

40 lines
953 B
C++

#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);
}
}