[NativeScript] fix double initialization in editor

This commit is contained in:
Karroffel 2017-07-25 18:18:36 +02:00
parent 3f1e75e89c
commit cdf1212bee
2 changed files with 10 additions and 2 deletions

View file

@ -958,7 +958,8 @@ void NativeReloadNode::_notification(int p_what) {
switch (p_what) {
case MainLoop::NOTIFICATION_WM_FOCUS_OUT: {
print_line("unload");
if (unloaded)
break;
NSL->_unload_stuff();
for (Map<String, Ref<GDNative> >::Element *L = NSL->library_gdnatives.front(); L; L = L->next()) {
@ -967,11 +968,14 @@ void NativeReloadNode::_notification(int p_what) {
NSL->library_classes.erase(L->key());
}
unloaded = true;
} break;
case MainLoop::NOTIFICATION_WM_FOCUS_IN: {
print_line("load");
if (!unloaded)
break;
Set<StringName> libs_to_remove;
@ -1010,6 +1014,8 @@ void NativeReloadNode::_notification(int p_what) {
}
}
unloaded = false;
for (Set<StringName>::Element *R = libs_to_remove.front(); R; R = R->next()) {
NSL->library_gdnatives.erase(R->get());
}

View file

@ -259,6 +259,8 @@ inline NativeScriptDesc *NativeScript::get_script_desc() const {
class NativeReloadNode : public Node {
GDCLASS(NativeReloadNode, Node)
bool unloaded = false;
public:
static void _bind_methods();
void _notification(int p_what);