GDScript: Add script to cache on reload
This ensures that scripts created without a resource loader are properly included in the cache (such as builtin scripts) and are not tried to be loaded from the disk.
This commit is contained in:
parent
0f9923e67f
commit
8088e9e6ac
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue