Merge pull request #8339 from karroffel/gdnative-reload-fix

[GDNative] Didn't iterate over all scripts
This commit is contained in:
Rémi Verschelde 2017-04-10 08:53:49 +02:00 committed by GitHub
commit 5598040e43
1 changed files with 11 additions and 13 deletions

View File

@ -1167,27 +1167,25 @@ void GDNativeReloadNode::_notification(int p_what) {
// update placeholders (if any)
GDNativeScript *script = NULL;
Set<GDNativeScript *> scripts;
for (Set<GDNativeScript *>::Element *S = GDNativeScriptLanguage::get_singleton()->script_list.front(); S; S = S->next()) {
if (lib->native_library->scripts.has(S->get()->get_script_name())) {
script = S->get();
GDNativeScript *script = S->get();
script->script_data = lib->get_script_data(script->get_script_name());
break;
scripts.insert(script);
}
}
if (script == NULL) {
// new class, cool. Nothing to do here
continue;
}
for (Set<GDNativeScript *>::Element *S = scripts.front(); S; S = S->next()) {
GDNativeScript *script = S->get();
if (script->placeholders.size() == 0)
continue;
if (script->placeholders.size() == 0)
continue;
for (Set<PlaceHolderScriptInstance *>::Element *P = script->placeholders.front(); P; P = P->next()) {
PlaceHolderScriptInstance *p = P->get();
script->_update_placeholder(p);
for (Set<PlaceHolderScriptInstance *>::Element *P = script->placeholders.front(); P; P = P->next()) {
PlaceHolderScriptInstance *p = P->get();
script->_update_placeholder(p);
}
}
}