diff options
author | karroffel <therzog@mail.de> | 2018-01-14 23:39:10 +0100 |
---|---|---|
committer | karroffel <therzog@mail.de> | 2018-01-14 23:39:10 +0100 |
commit | d56bcc38ac69a63715c30a6fcd06a1e763704251 (patch) | |
tree | 6fc64de2e4281eb38dfeb213f22f109113de4758 | |
parent | 0a691bf29e090c7d4a4d76d99a39c794349b4690 (diff) |
[GDNative] fix two crashes with NativeScript
-rw-r--r-- | modules/gdnative/nativescript/nativescript.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/modules/gdnative/nativescript/nativescript.cpp b/modules/gdnative/nativescript/nativescript.cpp index f45217d031..cff5d9c9bd 100644 --- a/modules/gdnative/nativescript/nativescript.cpp +++ b/modules/gdnative/nativescript/nativescript.cpp @@ -398,6 +398,11 @@ Variant NativeScript::_new(const Variant **p_args, int p_argcount, Variant::Call owner = memnew(Reference); } + if (!owner) { + r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL; + return Variant(); + } + Reference *r = Object::cast_to<Reference>(owner); if (r) { ref = REF(r); @@ -793,7 +798,7 @@ NativeScriptLanguage *NativeScriptLanguage::singleton; void NativeScriptLanguage::_unload_stuff(bool p_reload) { for (Map<String, Map<StringName, NativeScriptDesc> >::Element *L = library_classes.front(); L; L = L->next()) { - if (p_reload && !library_gdnatives[L->key()]->get_library()->is_reloadable()) { + if (p_reload && library_gdnatives[L->key()].is_valid() && !library_gdnatives[L->key()]->get_library()->is_reloadable()) { continue; } |