diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-08-28 20:57:27 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2016-08-28 20:59:01 -0300 |
commit | 748836e0b373a0139c11473f862c8071bed244b7 (patch) | |
tree | 2a6e4c601f388808d2c2f7c5bb73fa6b9f2108ce /core | |
parent | 1b80edafcaeca5c9f61c86448a16238fd82bb6da (diff) |
Several all around fixes to visual scripting (in the process of creating demos)
Diffstat (limited to 'core')
-rw-r--r-- | core/globals.cpp | 13 | ||||
-rw-r--r-- | core/globals.h | 1 |
2 files changed, 8 insertions, 6 deletions
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<Singleton>::Element *E=singletons.front();E;E=E->next()) { - if (E->get().name == p_name) { - return E->get().ptr; - }; - }; - return NULL; + const Map<StringName,Object*>::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<String,List<String> > &props,const CustomMap& p_custom=CustomMap()); List<Singleton> singletons; + Map<StringName,Object*> singleton_ptrs; Error _save_custom_bnd(const String& p_file); |