From add66e6caccc3a4250b341cd0e54b1cfd7c2c336 Mon Sep 17 00:00:00 2001 From: IlyaShurupov Date: Mon, 25 Mar 2024 11:40:56 +0300 Subject: [PATCH] remove initializer callbacks from method object --- Objects/private/core/ObjectsModule.cpp | 8 +++-- Objects/private/primitives/MethodObject.cpp | 34 ++++++++------------- Objects/public/primitives/MethodObject.hpp | 3 -- 3 files changed, 18 insertions(+), 27 deletions(-) diff --git a/Objects/private/core/ObjectsModule.cpp b/Objects/private/core/ObjectsModule.cpp index 2bb1bf0..385e6f0 100644 --- a/Objects/private/core/ObjectsModule.cpp +++ b/Objects/private/core/ObjectsModule.cpp @@ -1,7 +1,7 @@ #include "compiler/Functions.hpp" - #include "primitives/PrimitiveObjects.hpp" +#include "core/ScriptSection.hpp" using namespace tp; using namespace obj; @@ -20,6 +20,7 @@ static void defineTypes() { objects_api::define(&ColorObject::TypeData); objects_api::define(&InterpreterObject::TypeData); objects_api::define(&TypeObject::TypeData); + objects_api::define(&MethodObject::TypeData); } static void defineGroups() { @@ -34,13 +35,14 @@ static void defineGroups() { objects_api::addTypeToGroup(&EnumObject::TypeData, { "Primitives" }); objects_api::addTypeToGroup(&ClassObject::TypeData, { "Primitives" }); objects_api::addTypeToGroup(&ColorObject::TypeData, { "Primitives" }); + objects_api::addTypeToGroup(&MethodObject::TypeData, { "Primitives" }); objects_api::addTypeToGroup(&InterpreterObject::TypeData, { "scripting" }); } static bool init(const ModuleManifest*) { objects_api::initialize(); - MethodObject::Initialize(); + ScriptSection::initialize(); defineTypes(); defineGroups(); @@ -49,7 +51,7 @@ static bool init(const ModuleManifest*) { } static void deinit(const ModuleManifest*) { - MethodObject::UnInitialize(); + ScriptSection::uninitialize(); objects_api::finalize(); } diff --git a/Objects/private/primitives/MethodObject.cpp b/Objects/private/primitives/MethodObject.cpp index 47aca6c..05f0b9b 100644 --- a/Objects/private/primitives/MethodObject.cpp +++ b/Objects/private/primitives/MethodObject.cpp @@ -6,19 +6,6 @@ using namespace tp; using namespace obj; -struct ObjectType MethodObject::TypeData = { - .base = nullptr, - .constructor = (object_constructor) MethodObject::constructor, - .destructor = (object_destructor) MethodObject::destructor, - .copy = (object_copy) MethodObject::copy, - .size = sizeof(MethodObject), - .name = "method", - .conversions = nullptr, - .save_size = (object_save_size) MethodObject::save_size, - .save = (object_save) MethodObject::save, - .load = (object_load) MethodObject::load, -}; - void MethodObject::constructor(MethodObject* self) { self->mScript = obj::ScriptSection::globalHandle()->createScript(); } @@ -49,14 +36,6 @@ void MethodObject::load(ArchiverIn& file_self, obj::MethodObject* self) { self->mScript = script_section->get_scritp_from_file_adress(script_table_file_address); } -void MethodObject::Initialize() { - obj::ScriptSection::initialize(); - objects_api::define(&MethodObject::TypeData); - objects_api::addTypeToGroup(&MethodObject::TypeData, { "Primitives" }); -} - -void MethodObject::UnInitialize() { obj::ScriptSection::uninitialize(); } - void MethodObject::compile() { Compile(this); } MethodObject* MethodObject::create(const std::string& script) { @@ -65,3 +44,16 @@ MethodObject* MethodObject::create(const std::string& script) { out->compile(); return out; } + +struct ObjectType MethodObject::TypeData = { + .base = nullptr, + .constructor = (object_constructor) MethodObject::constructor, + .destructor = (object_destructor) MethodObject::destructor, + .copy = (object_copy) MethodObject::copy, + .size = sizeof(MethodObject), + .name = "method", + .conversions = nullptr, + .save_size = (object_save_size) MethodObject::save_size, + .save = (object_save) MethodObject::save, + .load = (object_load) MethodObject::load, +}; diff --git a/Objects/public/primitives/MethodObject.hpp b/Objects/public/primitives/MethodObject.hpp index 3f9f0f2..67499be 100644 --- a/Objects/public/primitives/MethodObject.hpp +++ b/Objects/public/primitives/MethodObject.hpp @@ -18,9 +18,6 @@ namespace tp::obj { static void save(MethodObject* self, ArchiverOut& file_self); static void load(ArchiverIn& file_self, obj::MethodObject* self); - static void Initialize(); - static void UnInitialize(); - void compile(); static MethodObject* create(const std::string& script);