dont use NULL macro
This commit is contained in:
parent
9d01ba2c8a
commit
e78885d452
16 changed files with 52 additions and 52 deletions
|
|
@ -50,7 +50,7 @@ ConstObject* ConstObjectsPool::registerObject(obj::Object* obj) {
|
||||||
|
|
||||||
ConstObject* ConstObjectsPool::get(tp::alni val) {
|
ConstObject* ConstObjectsPool::get(tp::alni val) {
|
||||||
auto idx = mIntegers.presents(val);
|
auto idx = mIntegers.presents(val);
|
||||||
ConstObject* const_obj = NULL;
|
ConstObject* const_obj = nullptr;
|
||||||
if (idx) {
|
if (idx) {
|
||||||
const_obj = mIntegers.getSlotVal(idx);
|
const_obj = mIntegers.getSlotVal(idx);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -62,7 +62,7 @@ ConstObject* ConstObjectsPool::get(tp::alni val) {
|
||||||
|
|
||||||
ConstObject* ConstObjectsPool::get(const std::string& val) {
|
ConstObject* ConstObjectsPool::get(const std::string& val) {
|
||||||
auto idx = mStrings.presents(val);
|
auto idx = mStrings.presents(val);
|
||||||
ConstObject* const_obj = NULL;
|
ConstObject* const_obj = nullptr;
|
||||||
if (idx) {
|
if (idx) {
|
||||||
const_obj = mStrings.getSlotVal(idx);
|
const_obj = mStrings.getSlotVal(idx);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -74,7 +74,7 @@ ConstObject* ConstObjectsPool::get(const std::string& val) {
|
||||||
|
|
||||||
ConstObject* ConstObjectsPool::get(tp::alnf val) {
|
ConstObject* ConstObjectsPool::get(tp::alnf val) {
|
||||||
auto idx = mFloats.presents(val);
|
auto idx = mFloats.presents(val);
|
||||||
ConstObject* const_obj = NULL;
|
ConstObject* const_obj = nullptr;
|
||||||
if (idx) {
|
if (idx) {
|
||||||
const_obj = mFloats.getSlotVal(idx);
|
const_obj = mFloats.getSlotVal(idx);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -62,13 +62,13 @@ void FunctionDefinition::EvalStatement(Statement* stm) {
|
||||||
|
|
||||||
EvalExpr(stm_while->mCondition);
|
EvalExpr(stm_while->mCondition);
|
||||||
|
|
||||||
auto jump_if_inst = inst(Instruction(NULL, Instruction::InstType::JUMP_IF_NOT));
|
auto jump_if_inst = inst(Instruction(nullptr, Instruction::InstType::JUMP_IF_NOT));
|
||||||
|
|
||||||
if (stm_while->mScope) {
|
if (stm_while->mScope) {
|
||||||
EvalStatement(stm_while->mScope);
|
EvalStatement(stm_while->mScope);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto jump_inst = inst(Instruction(NULL, Instruction::InstType::JUMP));
|
auto jump_inst = inst(Instruction(nullptr, Instruction::InstType::JUMP));
|
||||||
auto end_mark = inst(Instruction());
|
auto end_mark = inst(Instruction());
|
||||||
|
|
||||||
jump_if_inst->data.mInstTarget = &end_mark->data;
|
jump_if_inst->data.mInstTarget = &end_mark->data;
|
||||||
|
|
@ -82,13 +82,13 @@ void FunctionDefinition::EvalStatement(Statement* stm) {
|
||||||
|
|
||||||
EvalExpr(stm_if->mCondition);
|
EvalExpr(stm_if->mCondition);
|
||||||
|
|
||||||
auto jump_if_inst = inst(Instruction(NULL, Instruction::InstType::JUMP_IF_NOT));
|
auto jump_if_inst = inst(Instruction(nullptr, Instruction::InstType::JUMP_IF_NOT));
|
||||||
|
|
||||||
if (stm_if->mOnTrue) {
|
if (stm_if->mOnTrue) {
|
||||||
EvalStatement(stm_if->mOnTrue);
|
EvalStatement(stm_if->mOnTrue);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto jump_inst = inst(Instruction(NULL, Instruction::InstType::JUMP));
|
auto jump_inst = inst(Instruction(nullptr, Instruction::InstType::JUMP));
|
||||||
auto else_mark = inst(Instruction());
|
auto else_mark = inst(Instruction());
|
||||||
|
|
||||||
if (stm_if->mOnFalse) {
|
if (stm_if->mOnFalse) {
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ void Interpreter::exec(obj::MethodObject* method, obj::ClassObject* self, obj::D
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mCallStack.enter({ NULL, method, 0 });
|
mCallStack.enter({ nullptr, method, 0 });
|
||||||
mCallStack.mStack.last().mSelf = self;
|
mCallStack.mStack.last().mSelf = self;
|
||||||
|
|
||||||
stepBytecodeIn();
|
stepBytecodeIn();
|
||||||
|
|
@ -250,7 +250,7 @@ void Interpreter::stepBytecodeIn() {
|
||||||
case OpCode::OBJ_CREATE:
|
case OpCode::OBJ_CREATE:
|
||||||
{
|
{
|
||||||
auto type = mOperandsStack.getOperand<StringObject>();
|
auto type = mOperandsStack.getOperand<StringObject>();
|
||||||
Object* new_obj = NULL;
|
Object* new_obj = nullptr;
|
||||||
|
|
||||||
// basic types
|
// basic types
|
||||||
auto idx = NDO->types.presents(type->val);
|
auto idx = NDO->types.presents(type->val);
|
||||||
|
|
@ -272,11 +272,11 @@ void Interpreter::stepBytecodeIn() {
|
||||||
// PUSH_ARGS protocol
|
// PUSH_ARGS protocol
|
||||||
tp::uint2 len = 0;
|
tp::uint2 len = 0;
|
||||||
mOperandsStack.push((Object*) len);
|
mOperandsStack.push((Object*) len);
|
||||||
mOperandsStack.push(NULL);
|
mOperandsStack.push(nullptr);
|
||||||
|
|
||||||
// CALL protocol
|
// CALL protocol
|
||||||
mScopeStack.enterScope(false);
|
mScopeStack.enterScope(false);
|
||||||
mCallStack.enter({ NULL, method, 0 });
|
mCallStack.enter({ nullptr, method, 0 });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -313,14 +313,14 @@ void Interpreter::stepBytecodeIn() {
|
||||||
// Layout of OperandsStack:
|
// Layout of OperandsStack:
|
||||||
// ....
|
// ....
|
||||||
// +1) length : to chech number of args
|
// +1) length : to chech number of args
|
||||||
// +2) NULL : stop saving args
|
// +2) nullptr : stop saving args
|
||||||
// +3) object1
|
// +3) object1
|
||||||
// +4) object2
|
// +4) object2
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
tp::uint2 len = read_byte(bytecode);
|
tp::uint2 len = read_byte(bytecode);
|
||||||
mOperandsStack.push((Object*) len);
|
mOperandsStack.push((Object*) len);
|
||||||
mOperandsStack.push(NULL);
|
mOperandsStack.push(nullptr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -367,7 +367,7 @@ void Interpreter::stepBytecodeIn() {
|
||||||
NDO_CASTV(MethodObject, obj, method);
|
NDO_CASTV(MethodObject, obj, method);
|
||||||
|
|
||||||
mScopeStack.enterScope(false);
|
mScopeStack.enterScope(false);
|
||||||
mCallStack.enter({ NULL, method, 0 });
|
mCallStack.enter({ nullptr, method, 0 });
|
||||||
|
|
||||||
// push self
|
// push self
|
||||||
mCallStack.mStack.last().mSelf = mLastParent;
|
mCallStack.mStack.last().mSelf = mLastParent;
|
||||||
|
|
@ -376,7 +376,7 @@ void Interpreter::stepBytecodeIn() {
|
||||||
|
|
||||||
(*mTypeMethod)(this);
|
(*mTypeMethod)(this);
|
||||||
mIsTypeMethod = false;
|
mIsTypeMethod = false;
|
||||||
mTypeMethod = NULL;
|
mTypeMethod = nullptr;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -455,7 +455,7 @@ void Interpreter::stepBytecodeIn() {
|
||||||
auto parent = mOperandsStack.getOperand();
|
auto parent = mOperandsStack.getOperand();
|
||||||
bool is_method = read_byte(bytecode);
|
bool is_method = read_byte(bytecode);
|
||||||
|
|
||||||
Object* child = NULL;
|
Object* child = nullptr;
|
||||||
TypeMethods::LookupKey tm_key;
|
TypeMethods::LookupKey tm_key;
|
||||||
|
|
||||||
if (is_method) {
|
if (is_method) {
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ void OperandStack::push(Operand operand) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void OperandStack::pop() {
|
void OperandStack::pop() {
|
||||||
ASSERT(mIdx != NULL && "stack overflow");
|
ASSERT(mIdx != 0 && "stack overflow");
|
||||||
mIdx--;
|
mIdx--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ void ScopeStack::enterScope(bool aChildReachable) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScopeStack::leaveScope() {
|
void ScopeStack::leaveScope() {
|
||||||
ASSERT(mIdx != NULL && "stack overflow");
|
ASSERT(mIdx != 0 && "stack overflow");
|
||||||
mBuff[mIdx - 1].~Scope();
|
mBuff[mIdx - 1].~Scope();
|
||||||
mIdx--;
|
mIdx--;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ Parser::Result Parser::parse(const std::string& stream) {
|
||||||
bind(parser);
|
bind(parser);
|
||||||
|
|
||||||
std::string streamStd(stream.c_str());
|
std::string streamStd(stream.c_str());
|
||||||
streamStd += "\n"; // for windows os to be happy
|
streamStd += "\n"; // for Windows os to be happy
|
||||||
|
|
||||||
ASSERT(parser.valid());
|
ASSERT(parser.valid());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ const tp::Map<std::string, Object*>& DictObject::getItems() const { return items
|
||||||
|
|
||||||
static auto tm_get = TypeMethod{ .nameid = "get",
|
static auto tm_get = TypeMethod{ .nameid = "get",
|
||||||
.descr = "gets the object",
|
.descr = "gets the object",
|
||||||
.args = { { "str key", NULL } },
|
.args = { { "str key", nullptr } },
|
||||||
.exec =
|
.exec =
|
||||||
[](const TypeMethod* tm) {
|
[](const TypeMethod* tm) {
|
||||||
auto const self = (DictObject*) tm->self;
|
auto const self = (DictObject*) tm->self;
|
||||||
|
|
@ -156,12 +156,12 @@ static auto tm_get = TypeMethod{ .nameid = "get",
|
||||||
tm->ret.obj = self->getSlotVal(idx);
|
tm->ret.obj = self->getSlotVal(idx);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.ret = { "object", NULL } };
|
.ret = { "object", nullptr } };
|
||||||
|
|
||||||
static auto tm_put = TypeMethod{
|
static auto tm_put = TypeMethod{
|
||||||
.nameid = "put",
|
.nameid = "put",
|
||||||
.descr = "puts the object into the dictinary",
|
.descr = "puts the object into the dictinary",
|
||||||
.args = { { "key", NULL }, { "object", NULL } },
|
.args = { { "key", nullptr }, { "object", nullptr } },
|
||||||
.exec =
|
.exec =
|
||||||
[](const TypeMethod* tm) {
|
[](const TypeMethod* tm) {
|
||||||
auto const self = (DictObject*) tm->self;
|
auto const self = (DictObject*) tm->self;
|
||||||
|
|
@ -180,7 +180,7 @@ static auto tm_remove = TypeMethod{
|
||||||
.nameid = "remove",
|
.nameid = "remove",
|
||||||
.descr = "remove the object from the dictinary",
|
.descr = "remove the object from the dictinary",
|
||||||
.args = {
|
.args = {
|
||||||
{ "key", NULL },
|
{ "key", nullptr },
|
||||||
},
|
},
|
||||||
.exec = [](const TypeMethod* tm) {
|
.exec = [](const TypeMethod* tm) {
|
||||||
auto const self = (DictObject*)tm->self;
|
auto const self = (DictObject*)tm->self;
|
||||||
|
|
@ -194,7 +194,7 @@ static auto tm_remove = TypeMethod{
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
struct obj::ObjectType DictObject::TypeData = { .base = NULL,
|
struct obj::ObjectType DictObject::TypeData = { .base = nullptr,
|
||||||
.constructor = DictObject::constructor,
|
.constructor = DictObject::constructor,
|
||||||
.destructor = DictObject::destructor,
|
.destructor = DictObject::destructor,
|
||||||
.copy = DictObject::copy,
|
.copy = DictObject::copy,
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ using namespace tp;
|
||||||
void EnumObject::constructor(EnumObject* self) {
|
void EnumObject::constructor(EnumObject* self) {
|
||||||
self->active = 0;
|
self->active = 0;
|
||||||
self->nentries = 0;
|
self->nentries = 0;
|
||||||
self->entries = NULL;
|
self->entries = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void obj::EnumObject::destructor(EnumObject* self) {
|
void obj::EnumObject::destructor(EnumObject* self) {
|
||||||
|
|
@ -126,7 +126,7 @@ static void load(ArchiverIn& file_self, EnumObject* self) {
|
||||||
file_self >> self->active;
|
file_self >> self->active;
|
||||||
if (self->active == -1) {
|
if (self->active == -1) {
|
||||||
self->nentries = 0;
|
self->nentries = 0;
|
||||||
self->entries = NULL;
|
self->entries = nullptr;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
file_self >> self->nentries;
|
file_self >> self->nentries;
|
||||||
|
|
@ -134,7 +134,7 @@ static void load(ArchiverIn& file_self, EnumObject* self) {
|
||||||
file_self.readBytes((tp::int1*) self->entries, self->nentries * ENV_ALNI_SIZE_B);
|
file_self.readBytes((tp::int1*) self->entries, self->nentries * ENV_ALNI_SIZE_B);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool obj::EnumObject::compare(EnumObject* first, EnumObject* second) { return first->entries != NULL && second->entries != NULL && first->active == second->active; }
|
bool obj::EnumObject::compare(EnumObject* first, EnumObject* second) { return first->entries != nullptr && second->entries != nullptr && first->active == second->active; }
|
||||||
|
|
||||||
EnumObject* obj::EnumObject::create(tp::InitialierList<const char*> list) {
|
EnumObject* obj::EnumObject::create(tp::InitialierList<const char*> list) {
|
||||||
auto enum_object = (EnumObject*) obj::NDO->create("enum");
|
auto enum_object = (EnumObject*) obj::NDO->create("enum");
|
||||||
|
|
@ -160,7 +160,7 @@ struct ObjectTypeConversions EnumObjectTypeConversions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct obj::ObjectType obj::EnumObject::TypeData = {
|
struct obj::ObjectType obj::EnumObject::TypeData = {
|
||||||
.base = NULL,
|
.base = nullptr,
|
||||||
.constructor = (object_constructor) EnumObject::constructor,
|
.constructor = (object_constructor) EnumObject::constructor,
|
||||||
.destructor = (object_destructor) EnumObject::destructor,
|
.destructor = (object_destructor) EnumObject::destructor,
|
||||||
.copy = (object_copy) EnumObject::copy,
|
.copy = (object_copy) EnumObject::copy,
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,9 @@ struct ObjectTypeAriphmetics FloatObject::TypeAriphm = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct obj::ObjectType obj::FloatObject::TypeData = {
|
struct obj::ObjectType obj::FloatObject::TypeData = {
|
||||||
.base = NULL,
|
.base = nullptr,
|
||||||
.constructor = (object_constructor) FloatObject::constructor,
|
.constructor = (object_constructor) FloatObject::constructor,
|
||||||
.destructor = NULL,
|
.destructor = nullptr,
|
||||||
.copy = (object_copy) FloatObject::copy,
|
.copy = (object_copy) FloatObject::copy,
|
||||||
.size = sizeof(FloatObject),
|
.size = sizeof(FloatObject),
|
||||||
.name = "float",
|
.name = "float",
|
||||||
|
|
|
||||||
|
|
@ -58,9 +58,9 @@ struct ObjectTypeAriphmetics IntObject::TypeAriphm = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct obj::ObjectType obj::IntObject::TypeData = {
|
struct obj::ObjectType obj::IntObject::TypeData = {
|
||||||
.base = NULL,
|
.base = nullptr,
|
||||||
.constructor = IntObject::constructor,
|
.constructor = IntObject::constructor,
|
||||||
.destructor = NULL,
|
.destructor = nullptr,
|
||||||
.copy = (object_copy) IntObject::copy,
|
.copy = (object_copy) IntObject::copy,
|
||||||
.size = sizeof(IntObject),
|
.size = sizeof(IntObject),
|
||||||
.name = "int",
|
.name = "int",
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ LinkObject* LinkObject::create(Object* in) {
|
||||||
alni LinkObject::save_size(LinkObject* self) { return sizeof(alni); }
|
alni LinkObject::save_size(LinkObject* self) { return sizeof(alni); }
|
||||||
|
|
||||||
void LinkObject::save(LinkObject* self, ArchiverOut& file_self) {
|
void LinkObject::save(LinkObject* self, ArchiverOut& file_self) {
|
||||||
if (self->link != NULL) {
|
if (self->link != nullptr) {
|
||||||
alni link_object_save_adress = NDO->save(file_self, self->link);
|
alni link_object_save_adress = NDO->save(file_self, self->link);
|
||||||
file_self << link_object_save_adress;
|
file_self << link_object_save_adress;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -35,7 +35,7 @@ void LinkObject::load(ArchiverIn& file_self, LinkObject* self) {
|
||||||
file_self >> saved_object_adress;
|
file_self >> saved_object_adress;
|
||||||
|
|
||||||
if (saved_object_adress == -1) {
|
if (saved_object_adress == -1) {
|
||||||
self->link = NULL;
|
self->link = nullptr;
|
||||||
} else {
|
} else {
|
||||||
self->link = NDO->load(file_self, saved_object_adress);
|
self->link = NDO->load(file_self, saved_object_adress);
|
||||||
NDO->refinc(self->link);
|
NDO->refinc(self->link);
|
||||||
|
|
@ -66,7 +66,7 @@ void LinkObject::setLink(Object* obj) {
|
||||||
link = obj;
|
link = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static auto tm_set = TypeMethod{ .nameid = "set", .descr = "sets the link", .args = { { "target", NULL } }, .exec = [](const TypeMethod* tm) {
|
static auto tm_set = TypeMethod{ .nameid = "set", .descr = "sets the link", .args = { { "target", nullptr } }, .exec = [](const TypeMethod* tm) {
|
||||||
auto const self = (LinkObject*) tm->self;
|
auto const self = (LinkObject*) tm->self;
|
||||||
auto const target = tm->args[0].obj;
|
auto const target = tm->args[0].obj;
|
||||||
self->setLink(target);
|
self->setLink(target);
|
||||||
|
|
@ -82,15 +82,15 @@ static auto tm_get = TypeMethod{ .nameid = "get",
|
||||||
tm->ret.obj = link;
|
tm->ret.obj = link;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.ret = { "the link", NULL } };
|
.ret = { "the link", nullptr } };
|
||||||
|
|
||||||
struct obj::ObjectType LinkObject::TypeData = { .base = NULL,
|
struct obj::ObjectType LinkObject::TypeData = { .base = nullptr,
|
||||||
.constructor = LinkObject::constructor,
|
.constructor = LinkObject::constructor,
|
||||||
.destructor = (object_destructor) LinkObject::destructor,
|
.destructor = (object_destructor) LinkObject::destructor,
|
||||||
.copy = LinkObject::copy,
|
.copy = LinkObject::copy,
|
||||||
.size = sizeof(LinkObject),
|
.size = sizeof(LinkObject),
|
||||||
.name = "link",
|
.name = "link",
|
||||||
.convesions = NULL,
|
.convesions = nullptr,
|
||||||
.save_size = (object_save_size) LinkObject::save_size,
|
.save_size = (object_save_size) LinkObject::save_size,
|
||||||
.save = (object_save) LinkObject::save,
|
.save = (object_save) LinkObject::save,
|
||||||
.load = (object_load) LinkObject::load,
|
.load = (object_load) LinkObject::load,
|
||||||
|
|
|
||||||
|
|
@ -106,13 +106,13 @@ void ListObject::popBack() {
|
||||||
|
|
||||||
const tp::List<Object*>& ListObject::getItems() const { return items; }
|
const tp::List<Object*>& ListObject::getItems() const { return items; }
|
||||||
|
|
||||||
struct obj::ObjectType obj::ListObject::TypeData = { .base = NULL,
|
struct obj::ObjectType obj::ListObject::TypeData = { .base = nullptr,
|
||||||
.constructor = ListObject::constructor,
|
.constructor = ListObject::constructor,
|
||||||
.destructor = ListObject::destructor,
|
.destructor = ListObject::destructor,
|
||||||
.copy = ListObject::copy,
|
.copy = ListObject::copy,
|
||||||
.size = sizeof(ListObject),
|
.size = sizeof(ListObject),
|
||||||
.name = "list",
|
.name = "list",
|
||||||
.convesions = NULL,
|
.convesions = nullptr,
|
||||||
.save_size = (object_save_size) save_size,
|
.save_size = (object_save_size) save_size,
|
||||||
.save = (object_save) save,
|
.save = (object_save) save,
|
||||||
.load = (object_load) load,
|
.load = (object_load) load,
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,13 @@
|
||||||
using namespace obj;
|
using namespace obj;
|
||||||
|
|
||||||
struct ObjectType MethodObject::TypeData = {
|
struct ObjectType MethodObject::TypeData = {
|
||||||
.base = NULL,
|
.base = nullptr,
|
||||||
.constructor = (object_constructor) MethodObject::constructor,
|
.constructor = (object_constructor) MethodObject::constructor,
|
||||||
.destructor = (object_destructor) MethodObject::destructor,
|
.destructor = (object_destructor) MethodObject::destructor,
|
||||||
.copy = (object_copy) MethodObject::copy,
|
.copy = (object_copy) MethodObject::copy,
|
||||||
.size = sizeof(MethodObject),
|
.size = sizeof(MethodObject),
|
||||||
.name = "method",
|
.name = "method",
|
||||||
.convesions = NULL,
|
.convesions = nullptr,
|
||||||
.save_size = (object_save_size) MethodObject::save_size,
|
.save_size = (object_save_size) MethodObject::save_size,
|
||||||
.save = (object_save) MethodObject::save,
|
.save = (object_save) MethodObject::save,
|
||||||
.load = (object_load) MethodObject::load,
|
.load = (object_load) MethodObject::load,
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
using namespace obj;
|
using namespace obj;
|
||||||
using namespace tp;
|
using namespace tp;
|
||||||
|
|
||||||
obj::NullObject* obj::NdoNull_globalInstance = NULL;
|
obj::NullObject* obj::NdoNull_globalInstance = nullptr;
|
||||||
bool uninit_flag = false;
|
bool uninit_flag = false;
|
||||||
|
|
||||||
void NullObject::uninit() {
|
void NullObject::uninit() {
|
||||||
|
|
@ -16,7 +16,7 @@ void NullObject::uninit() {
|
||||||
|
|
||||||
void NullObject::destructor(Object* self) { DEBUG_ASSERT(uninit_flag && "Only one the instance of NullObject exists and thus it can't be destroyed"); }
|
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 "NULL"; }
|
std::string to_string(NullObject* self) { return "nullptr"; }
|
||||||
|
|
||||||
alni to_int(NullObject* self) { return 0; }
|
alni to_int(NullObject* self) { return 0; }
|
||||||
|
|
||||||
|
|
@ -29,19 +29,19 @@ obj::TypeMethods* tm_construct() {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ObjectTypeConversions NullObjectTypeConversions = {
|
struct ObjectTypeConversions NullObjectTypeConversions = {
|
||||||
.from_int = NULL,
|
.from_int = nullptr,
|
||||||
.from_float = NULL,
|
.from_float = nullptr,
|
||||||
.from_string = NULL,
|
.from_string = nullptr,
|
||||||
.to_string = (object_to_string) to_string,
|
.to_string = (object_to_string) to_string,
|
||||||
.to_int = (object_to_int) to_int,
|
.to_int = (object_to_int) to_int,
|
||||||
.to_float = (object_to_float) to_float,
|
.to_float = (object_to_float) to_float,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ObjectType NullObject::TypeData = {
|
struct ObjectType NullObject::TypeData = {
|
||||||
.base = NULL,
|
.base = nullptr,
|
||||||
.constructor = NULL,
|
.constructor = nullptr,
|
||||||
.destructor = NullObject::destructor,
|
.destructor = NullObject::destructor,
|
||||||
.copy = NULL,
|
.copy = nullptr,
|
||||||
.size = sizeof(NullObject),
|
.size = sizeof(NullObject),
|
||||||
.name = "null",
|
.name = "null",
|
||||||
.convesions = &NullObjectTypeConversions,
|
.convesions = &NullObjectTypeConversions,
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ struct ObjectTypeConversions StringObjectTypeConversions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct obj::ObjectType StringObject::TypeData = {
|
struct obj::ObjectType StringObject::TypeData = {
|
||||||
.base = NULL,
|
.base = nullptr,
|
||||||
.constructor = StringObject::constructor,
|
.constructor = StringObject::constructor,
|
||||||
.destructor = (object_destructor) StringObject::destructor,
|
.destructor = (object_destructor) StringObject::destructor,
|
||||||
.copy = StringObject::copy,
|
.copy = StringObject::copy,
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ static struct ObjectTypeConversions conversions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct obj::ObjectType TypeObject::TypeData = {
|
struct obj::ObjectType TypeObject::TypeData = {
|
||||||
.base = NULL,
|
.base = nullptr,
|
||||||
//.constructor = (object_constructor) TypeObject::constructor,
|
//.constructor = (object_constructor) TypeObject::constructor,
|
||||||
.size = sizeof(TypeObject),
|
.size = sizeof(TypeObject),
|
||||||
.name = "typeobject",
|
.name = "typeobject",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue