2
0
Эх сурвалжийг харах

Fix crash parsing a serialized Reference

Pedro J. Estébanez 4 жил өмнө
parent
commit
4dafa5b21e

+ 3 - 6
core/variant_parser.cpp

@@ -712,6 +712,8 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
 				return ERR_PARSE_ERROR;
 				return ERR_PARSE_ERROR;
 			}
 			}
 
 
+			REF ref = REF(Object::cast_to<Reference>(obj));
+
 			get_token(p_stream, token, line, r_err_str);
 			get_token(p_stream, token, line, r_err_str);
 			if (token.type != TK_COMMA) {
 			if (token.type != TK_COMMA) {
 				r_err_str = "Expected ',' after object type";
 				r_err_str = "Expected ',' after object type";
@@ -737,12 +739,7 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
 						return err;
 						return err;
 
 
 					if (token2.type == TK_PARENTHESIS_CLOSE) {
 					if (token2.type == TK_PARENTHESIS_CLOSE) {
-						Reference *reference = Object::cast_to<Reference>(obj);
-						if (reference) {
-							value = REF(reference);
-						} else {
-							value = obj;
-						}
+						value = ref.is_valid() ? Variant(ref) : Variant(obj);
 						return OK;
 						return OK;
 					}
 					}