diff options
author | Benjamin Otte <otte@redhat.com> | 2017-10-17 16:55:27 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2017-10-30 02:58:03 +0100 |
commit | 6a95433046c8501f8d7daad5b26c8bfcbb13542a (patch) | |
tree | 56ab89bbd7cb1ddddd541678f6c1e11982c88257 | |
parent | b5919bf8489d41696d3dcc447e0ed21e2d07cbca (diff) | |
download | gtk+-6a95433046c8501f8d7daad5b26c8bfcbb13542a.tar.gz |
gsksltype: Add gsk_sl_type_is_basic()
That way, code doesn't have to do if (is_vector() || is_matrix() ||
is_scalar()) everywhere.
-rw-r--r-- | gsk/gskslexpression.c | 2 | ||||
-rw-r--r-- | gsk/gskslstatement.c | 2 | ||||
-rw-r--r-- | gsk/gsksltype.c | 8 | ||||
-rw-r--r-- | gsk/gsksltypeprivate.h | 1 |
4 files changed, 11 insertions, 2 deletions
diff --git a/gsk/gskslexpression.c b/gsk/gskslexpression.c index 6f7ec10d94..550d5e08b5 100644 --- a/gsk/gskslexpression.c +++ b/gsk/gskslexpression.c @@ -2330,7 +2330,7 @@ gsk_sl_expression_parse_unary (GskSlScope *scope, gsk_sl_preprocessor_consume (preproc, negation); negation->expr = gsk_sl_expression_parse_unary (scope, preproc); type = gsk_sl_expression_get_return_type (negation->expr); - if (!gsk_sl_type_is_scalar (type) && !gsk_sl_type_is_vector (type) && !gsk_sl_type_is_matrix (type)) + if (!gsk_sl_type_is_basic (type)) { gsk_sl_preprocessor_error (preproc, TYPE_MISMATCH, "Negation only works on scalars, vectors and matrices, not on %s.", diff --git a/gsk/gskslstatement.c b/gsk/gskslstatement.c index ca4708ff88..56fc2ac988 100644 --- a/gsk/gskslstatement.c +++ b/gsk/gskslstatement.c @@ -769,7 +769,7 @@ its_a_type: GskSlStatementExpression *statement_expression; statement_expression = gsk_sl_statement_new (GskSlStatementExpression, &GSK_SL_STATEMENT_EXPRESSION); - if (gsk_sl_type_is_scalar (type) || gsk_sl_type_is_vector (type) || gsk_sl_type_is_matrix (type)) + if (gsk_sl_type_is_basic (type)) { statement_expression->expression = gsk_sl_expression_parse_constructor (scope, preproc, type); } diff --git a/gsk/gsksltype.c b/gsk/gsksltype.c index c4050de4d1..4afd840f0e 100644 --- a/gsk/gsksltype.c +++ b/gsk/gsksltype.c @@ -2057,6 +2057,14 @@ gsk_sl_type_is_matrix (const GskSlType *type) } gboolean +gsk_sl_type_is_basic (const GskSlType *type) +{ + return gsk_sl_type_is_scalar (type) + || gsk_sl_type_is_vector (type) + || gsk_sl_type_is_matrix (type); +} + +gboolean gsk_sl_type_is_struct (const GskSlType *type) { return type->class == &GSK_SL_TYPE_STRUCT; diff --git a/gsk/gsksltypeprivate.h b/gsk/gsksltypeprivate.h index 55b6956d5d..567762c31b 100644 --- a/gsk/gsksltypeprivate.h +++ b/gsk/gsksltypeprivate.h @@ -48,6 +48,7 @@ gboolean gsk_sl_type_is_void (const GskSlType gboolean gsk_sl_type_is_scalar (const GskSlType *type); gboolean gsk_sl_type_is_vector (const GskSlType *type); gboolean gsk_sl_type_is_matrix (const GskSlType *type); +gboolean gsk_sl_type_is_basic (const GskSlType *type); gboolean gsk_sl_type_is_struct (const GskSlType *type); gboolean gsk_sl_type_is_block (const GskSlType *type); gboolean gsk_sl_type_is_opaque (const GskSlType *type); |