Browse Source

Merge pull request #53015 from timothyqiu/cast-crash

Rémi Verschelde 3 years ago
parent
commit
8fb06b45d1
1 changed files with 5 additions and 12 deletions
  1. 5 12
      core/variant.cpp

+ 5 - 12
core/variant.cpp

@@ -804,22 +804,15 @@ bool Variant::is_one() const {
 }
 
 ObjectID Variant::get_object_instance_id() const {
-	if (type != OBJECT) {
+	if (unlikely(type != OBJECT)) {
 		return 0;
-	}
-#ifdef DEBUG_ENABLED
-	if (is_ref()) {
-		return !_get_obj().ref.is_null() ? _REF_OBJ_PTR(*this)->get_instance_id() : 0;
-	} else {
+	} else if (likely(_get_obj().rc)) {
 		return _get_obj().rc->instance_id;
-	}
-#else
-	if (is_ref() && _get_obj().ref.is_null()) {
-		return 0;
+	} else if (likely(!_get_obj().ref.is_null())) {
+		return _REF_OBJ_PTR(*this)->get_instance_id();
 	} else {
-		return _get_obj().rc->get_ptr()->get_instance_id();
+		return 0;
 	}
-#endif
 }
 
 bool Variant::is_invalid_object() const {