clean up null object
This commit is contained in:
parent
24f9d8acae
commit
88b78d907a
6 changed files with 30 additions and 50 deletions
|
|
@ -5,31 +5,12 @@
|
|||
using namespace tp;
|
||||
using namespace obj;
|
||||
|
||||
obj::NullObject* obj::NdoNull_globalInstance = nullptr;
|
||||
bool uninit_flag = false;
|
||||
|
||||
void NullObject::uninit() {
|
||||
uninit_flag = true;
|
||||
objects_api::destroy(NdoNull_globalInstance);
|
||||
NdoNull_globalInstance = nullptr;
|
||||
}
|
||||
|
||||
void NullObject::destructor(Object* self) {
|
||||
DEBUG_ASSERT(uninit_flag && "Only one the instance of NullObject exists and thus it can't be destroyed");
|
||||
}
|
||||
|
||||
std::string to_string(NullObject* self) { return "nullptr"; }
|
||||
|
||||
alni to_int(NullObject* self) { return 0; }
|
||||
|
||||
alnf to_float(NullObject* self) { return 0; }
|
||||
|
||||
obj::TypeMethods* tm_construct() {
|
||||
auto out = new obj::TypeMethods();
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
struct ObjectTypeConversions NullObjectTypeConversions = {
|
||||
.from_int = nullptr,
|
||||
.from_float = nullptr,
|
||||
|
|
@ -42,7 +23,7 @@ struct ObjectTypeConversions NullObjectTypeConversions = {
|
|||
struct ObjectType NullObject::TypeData = {
|
||||
.base = nullptr,
|
||||
.constructor = nullptr,
|
||||
.destructor = NullObject::destructor,
|
||||
.destructor = nullptr,
|
||||
.copy = nullptr,
|
||||
.size = sizeof(NullObject),
|
||||
.name = "null",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue