From 748836e0b373a0139c11473f862c8071bed244b7 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sun, 28 Aug 2016 20:57:27 -0300 Subject: Several all around fixes to visual scripting (in the process of creating demos) --- core/globals.cpp | 13 +++++++------ core/globals.h | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'core') diff --git a/core/globals.cpp b/core/globals.cpp index 3f0edd68f4..b822f52f15 100644 --- a/core/globals.cpp +++ b/core/globals.cpp @@ -1332,17 +1332,18 @@ Variant _GLOBAL_DEF( const String& p_var, const Variant& p_default) { void Globals::add_singleton(const Singleton &p_singleton) { singletons.push_back(p_singleton); + singleton_ptrs[p_singleton.name]=p_singleton.ptr; } Object* Globals::get_singleton_object(const String& p_name) const { - for(const List::Element *E=singletons.front();E;E=E->next()) { - if (E->get().name == p_name) { - return E->get().ptr; - }; - }; - return NULL; + const Map::Element *E=singleton_ptrs.find(p_name); + if (!E) + return NULL; + else + return E->get(); + }; bool Globals::has_singleton(const String& p_name) const { diff --git a/core/globals.h b/core/globals.h index f24b2daf79..5e0bdb0e54 100644 --- a/core/globals.h +++ b/core/globals.h @@ -91,6 +91,7 @@ protected: Error _save_settings_binary(const String& p_file,const Map > &props,const CustomMap& p_custom=CustomMap()); List singletons; + Map singleton_ptrs; Error _save_custom_bnd(const String& p_file); -- cgit v1.2.3