diff options
| -rw-r--r-- | modules/gdscript/gdscript.cpp | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index 9170255c02..541d46a2af 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -596,6 +596,21 @@ Error GDScript::reload(bool p_keep_state) {  		return OK;  	} +	{ +		String source_path = path; +		if (source_path.empty()) { +			source_path = get_path(); +		} +		if (!source_path.empty()) { +			MutexLock lock(GDScriptCache::singleton->lock); +			Ref<GDScript> self(this); +			if (!GDScriptCache::singleton->shallow_gdscript_cache.has(source_path)) { +				GDScriptCache::singleton->shallow_gdscript_cache[source_path] = self; +				self->unreference(); +			} +		} +	} +  	valid = false;  	GDScriptParser parser;  	Error err = parser.parse(source, path, false);  |