diff --git a/visual_script.cpp b/visual_script.cpp index 7a3a012..8258515 100644 --- a/visual_script.cpp +++ b/visual_script.cpp @@ -926,13 +926,9 @@ ScriptInstance *VisualScript::instance_create(Object *p_this) { VisualScriptInstance *instance = memnew(VisualScriptInstance); instance->create(Ref(this), p_this); - if (VisualScriptLanguage::singleton->lock) - VisualScriptLanguage::singleton->lock->lock(); - + VisualScriptLanguage::singleton->lock.lock(); instances[p_this] = instance; - - if (VisualScriptLanguage::singleton->lock) - VisualScriptLanguage::singleton->lock->unlock(); + VisualScriptLanguage::singleton->lock.unlock(); return instance; } @@ -2298,13 +2294,9 @@ VisualScriptInstance::VisualScriptInstance() { VisualScriptInstance::~VisualScriptInstance() { - if (VisualScriptLanguage::singleton->lock) - VisualScriptLanguage::singleton->lock->lock(); - + VisualScriptLanguage::singleton->lock.lock(); script->instances.erase(owner); - - if (VisualScriptLanguage::singleton->lock) - VisualScriptLanguage::singleton->lock->unlock(); + VisualScriptLanguage::singleton->lock.unlock(); for (Map::Element *E = instances.front(); E; E = E->next()) { memdelete(E->get()); @@ -2743,9 +2735,6 @@ VisualScriptLanguage::VisualScriptLanguage() { _step = "_step"; _subcall = "_subcall"; singleton = this; -#ifndef NO_THREADS - lock = Mutex::create(); -#endif _debug_parse_err_node = -1; _debug_parse_err_file = ""; @@ -2766,9 +2755,6 @@ VisualScriptLanguage::VisualScriptLanguage() { VisualScriptLanguage::~VisualScriptLanguage() { - if (lock) - memdelete(lock); - if (_call_stack) { memdelete_arr(_call_stack); } diff --git a/visual_script.h b/visual_script.h index ee5adf6..f14c74f 100644 --- a/visual_script.h +++ b/visual_script.h @@ -507,7 +507,7 @@ public: static VisualScriptLanguage *singleton; - Mutex *lock; + Mutex lock; bool debug_break(const String &p_error, bool p_allow_continue = true); bool debug_break_parse(const String &p_file, int p_node, const String &p_error);