summaryrefslogtreecommitdiff
path: root/modules/gdnative
diff options
context:
space:
mode:
authorkarroffel <therzog@mail.de>2018-01-14 23:39:10 +0100
committerkarroffel <therzog@mail.de>2018-01-14 23:39:10 +0100
commitd56bcc38ac69a63715c30a6fcd06a1e763704251 (patch)
tree6fc64de2e4281eb38dfeb213f22f109113de4758 /modules/gdnative
parent0a691bf29e090c7d4a4d76d99a39c794349b4690 (diff)
[GDNative] fix two crashes with NativeScript
Diffstat (limited to 'modules/gdnative')
-rw-r--r--modules/gdnative/nativescript/nativescript.cpp7
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;
}