Browse Source

Fix errors in Variant to RID conversion

Pedro J. Estébanez 5 years ago
parent
commit
ee301bceb5
1 changed files with 2 additions and 1 deletions
  1. 2 1
      core/variant.cpp

+ 2 - 1
core/variant.cpp

@@ -1762,11 +1762,12 @@ Variant::operator RID() const {
 			return _get_obj().ref.get_rid();
 			return _get_obj().ref.get_rid();
 		} else {
 		} else {
 #ifdef DEBUG_ENABLED
 #ifdef DEBUG_ENABLED
-			Object *obj = _get_obj().rc->get_ptr();
+			Object *obj = likely(_get_obj().rc) ? _get_obj().rc->get_ptr() : NULL;
 			if (unlikely(!obj)) {
 			if (unlikely(!obj)) {
 				if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
 				if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
 					WARN_PRINT("Attempted get RID on a deleted object.");
 					WARN_PRINT("Attempted get RID on a deleted object.");
 				}
 				}
+				return RID();
 			}
 			}
 #else
 #else
 			Object *obj = _get_obj().obj;
 			Object *obj = _get_obj().obj;