33 lines
No EOL
731 B
C++
33 lines
No EOL
731 B
C++
|
|
#pragma once
|
|
|
|
#include "core/Object.hpp"
|
|
|
|
namespace tp::obj {
|
|
|
|
extern struct NullObject* NdoNull_globalInstance;
|
|
|
|
struct NullObject : Object {
|
|
static ObjectType TypeData;
|
|
|
|
static void destructor(Object* self);
|
|
|
|
static void uninit();
|
|
static Object* null_return() {
|
|
if (!NdoNull_globalInstance) {
|
|
NdoNull_globalInstance = NDO->create<NullObject>();
|
|
NDO->increaseReferenceCount(NdoNull_globalInstance);
|
|
}
|
|
return (Object*) NdoNull_globalInstance;
|
|
}
|
|
|
|
static Object* null_return_ref() {
|
|
NDO->increaseReferenceCount(null_return());
|
|
return NdoNull_globalInstance;
|
|
}
|
|
};
|
|
|
|
#define NDO_NULL NullObject::null_return()
|
|
#define NDO_NULL_REF NullObject::null_return_ref()
|
|
|
|
} |