[NativeScript] fix double free but on exit

This commit is contained in:
Karroffel 2017-07-24 14:07:22 +02:00
parent 534d62d2f4
commit a1a76bbde4

View file

@ -799,7 +799,7 @@ NativeScriptLanguage::NativeScriptLanguage() {
// TODO(karroffel): implement this // TODO(karroffel): implement this
NativeScriptLanguage::~NativeScriptLanguage() { NativeScriptLanguage::~NativeScriptLanguage() {
_unload_stuff(); // _unload_stuff(); // NOTE(karroffel): This gets called in ::finish()
for (Map<String, Ref<GDNative> >::Element *L = NSL->library_gdnatives.front(); L; L = L->next()) { for (Map<String, Ref<GDNative> >::Element *L = NSL->library_gdnatives.front(); L; L = L->next()) {
@ -1011,40 +1011,6 @@ void NativeReloadNode::_notification(int p_what) {
NSL->library_gdnatives.erase(R->get()); NSL->library_gdnatives.erase(R->get());
} }
/*
for (Set<NativeLibrary *>::Element *L = libs_to_reload.front(); L; L = L->next()) {
GDNativeLibrary *lib = L->get()->dllib;
lib->_terminate();
lib->_initialize();
// update placeholders (if any)
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())) {
GDNativeScript *script = S->get();
script->script_data = lib->get_script_data(script->get_script_name());
scripts.insert(script);
}
}
for (Set<GDNativeScript *>::Element *S = scripts.front(); S; S = S->next()) {
GDNativeScript *script = S->get();
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);
}
}
}
*/
} break; } break;
default: { default: {
}; };