Merge pull request #93166 from Hilderin/fix-binary-export-mismatched-external-parser

Fix mismatched external parser with binary exports
This commit is contained in:
Rémi Verschelde 2024-06-17 10:58:07 +02:00
commit 70a0bee7ed
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -771,12 +771,20 @@ Error GDScript::reload(bool p_keep_state) {
if (GDScriptCache::has_parser(source_path)) {
Error err = OK;
Ref<GDScriptParserRef> parser_ref = GDScriptCache::get_parser(source_path, GDScriptParserRef::EMPTY, err);
if (parser_ref.is_valid() && parser_ref->get_source_hash() != source.hash()) {
if (parser_ref.is_valid()) {
uint32_t source_hash;
if (!binary_tokens.is_empty()) {
source_hash = hash_djb2_buffer(binary_tokens.ptr(), binary_tokens.size());
} else {
source_hash = source.hash();
}
if (parser_ref->get_source_hash() != source_hash) {
GDScriptCache::remove_parser(source_path);
}
}
}
}
}
bool can_run = ScriptServer::is_scripting_enabled() || is_tool();