Parcourir la source

[GDNative] fix two crashes with NativeScript

karroffel il y a 7 ans
Parent
commit
d56bcc38ac
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      modules/gdnative/nativescript/nativescript.cpp

+ 6 - 1
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;
 		}