From 6d6d9bc7f98591b1398491f759cd0ec9ae2cab12 Mon Sep 17 00:00:00 2001 From: Ignacio Etcheverry Date: Sat, 5 Nov 2016 17:13:04 +0100 Subject: [PATCH] Core: Add singleton instance to _Marshalls --- core/bind/core_bind.cpp | 7 +++++++ core/bind/core_bind.h | 7 ++++++- core/register_core_types.cpp | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index 4e815d044dd..b947eec8d49 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -2043,6 +2043,13 @@ _Directory::~_Directory() { memdelete(d); } +_Marshalls* _Marshalls::singleton=NULL; + +_Marshalls *_Marshalls::get_singleton() +{ + return singleton; +} + String _Marshalls::variant_to_base64(const Variant& p_var) { int len; diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index 14203ae8631..d86306726c2 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -503,6 +503,8 @@ class _Marshalls : public Reference { OBJ_TYPE(_Marshalls,Reference); + static _Marshalls* singleton; + protected: static void _bind_methods(); @@ -510,6 +512,8 @@ protected: public: + static _Marshalls* get_singleton(); + String variant_to_base64(const Variant& p_var); Variant base64_to_variant(const String& p_str); @@ -519,7 +523,8 @@ public: String utf8_to_base64(const String& p_str); String base64_to_utf8(const String& p_str); - _Marshalls() {}; + _Marshalls() { singleton = this; } + ~_Marshalls() { singleton = NULL; } }; diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp index c3a127afb9d..4c9d121781a 100644 --- a/core/register_core_types.cpp +++ b/core/register_core_types.cpp @@ -177,7 +177,7 @@ void register_core_singletons() { Globals::get_singleton()->add_singleton( Globals::Singleton("ResourceSaver",_ResourceSaver::get_singleton()) ); Globals::get_singleton()->add_singleton( Globals::Singleton("PathRemap",PathRemap::get_singleton() ) ); Globals::get_singleton()->add_singleton( Globals::Singleton("OS",_OS::get_singleton() ) ); - Globals::get_singleton()->add_singleton( Globals::Singleton("Marshalls",_marshalls ) ); + Globals::get_singleton()->add_singleton( Globals::Singleton("Marshalls",_Marshalls::get_singleton() ) ); Globals::get_singleton()->add_singleton( Globals::Singleton("TranslationServer",TranslationServer::get_singleton() ) ); Globals::get_singleton()->add_singleton( Globals::Singleton("TS",TranslationServer::get_singleton() ) ); Globals::get_singleton()->add_singleton( Globals::Singleton("Input",Input::get_singleton() ) );