From: Ian Romanick Date: Thu, 25 Mar 2010 00:53:53 +0000 (-0700) Subject: Replace several field comparisons with a single pointer comparison X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=664da2510aa11c5319acad3bd6e96a9504a0b3fc;p=mesa.git Replace several field comparisons with a single pointer comparison The only way the specified type fields can match is if the types are the same. Previous tests (and assertions) have filtered away all other possible cases. --- diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp index 5fe44ec4697..cb746ed59a9 100644 --- a/ast_to_hir.cpp +++ b/ast_to_hir.cpp @@ -151,10 +151,7 @@ arithmetic_result_type(const struct glsl_type *type_a, * vector." */ if (type_a->is_vector() && type_b->is_vector()) { - if (type_a->vector_elements == type_b->vector_elements) - return type_a; - else - return glsl_error_type; + return (type_a == type_b) ? type_a : glsl_error_type; } /* All of the combinations of , , @@ -183,12 +180,7 @@ arithmetic_result_type(const struct glsl_type *type_a, * more detail how vectors and matrices are operated on." */ if (! multiply) { - if (type_a->is_matrix() && type_b->is_matrix() - && (type_a->vector_elements == type_b->vector_elements) - && (type_a->matrix_rows == type_b->matrix_rows)) - return type_a; - else - return glsl_error_type; + return (type_a == type_b) ? type_a : glsl_error_type; } else { if (type_a->is_matrix() && type_b->is_matrix()) { if (type_a->vector_elements == type_b->matrix_rows) {