diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-03-04 19:25:47 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-03-04 23:35:19 +0100 |
commit | f44a37d75507e14c2af4505457d251f03b5eb59f (patch) | |
tree | a0fb36e8172c5f284fb59aa0bdd9e54d9a829f40 | |
parent | d478d391ad00ffff772f65e61c418b80ca9dc6fe (diff) | |
download | tracker-f44a37d75507e14c2af4505457d251f03b5eb59f.tar.gz |
libtracker-data: Add _optional() to complement _accept()
We sometimes do _accept() on things without checking the return value as
those are optional tokens, we want to advance to the next node if it was
there, and stay where we are if it isn't.
Using _accept() for that is just fine, but trips Coverity as the return
value sometimes go unchecked as opposed to another myriad times.
Add an _optional() function so that it's evident to the reader, and static
analysis.
CIDs: #1491433, #1491438, #1491440, #1491442, #1491443, #1491445
-rw-r--r-- | src/libtracker-data/tracker-sparql.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c index 84130b916..71e0029b3 100644 --- a/src/libtracker-data/tracker-sparql.c +++ b/src/libtracker-data/tracker-sparql.c @@ -417,6 +417,14 @@ _expect (TrackerSparql *sparql, } static inline void +_optional (TrackerSparql *sparql, + TrackerGrammarRuleType type, + guint value) +{ + (void) _accept (sparql, type, value); +} + +static inline void _step (TrackerSparql *sparql) { tracker_sparql_iter_next (sparql); @@ -2295,7 +2303,7 @@ translate_Update (TrackerSparql *sparql, if (sparql->blank_nodes) g_variant_builder_close (sparql->blank_nodes); - _accept (sparql, RULE_TYPE_LITERAL, LITERAL_SEMICOLON); + _optional (sparql, RULE_TYPE_LITERAL, LITERAL_SEMICOLON); if (_check_in_rule (sparql, NAMED_RULE_Update)) _call_rule (sparql, NAMED_RULE_Update, error); @@ -2978,7 +2986,7 @@ translate_WhereClause (TrackerSparql *sparql, */ child = _append_placeholder (sparql); old = tracker_sparql_swap_builder (sparql, child); - _accept (sparql, RULE_TYPE_LITERAL, LITERAL_WHERE); + _optional (sparql, RULE_TYPE_LITERAL, LITERAL_WHERE); _call_rule (sparql, NAMED_RULE_GroupGraphPattern, error); if (!tracker_string_builder_is_empty (child)) { @@ -4228,7 +4236,7 @@ translate_GraphOrDefault (TrackerSparql *sparql, tracker_token_unset (&sparql->current_state.graph); sparql->current_state.graph_op = GRAPH_OP_DEFAULT; } else { - _accept (sparql, RULE_TYPE_LITERAL, LITERAL_GRAPH); + _optional (sparql, RULE_TYPE_LITERAL, LITERAL_GRAPH); _call_rule (sparql, NAMED_RULE_iri, error); _init_token (&sparql->current_state.graph, sparql->current_state.prev_node, sparql); @@ -4309,7 +4317,7 @@ translate_Quads (TrackerSparql *sparql, while (_check_in_rule (sparql, NAMED_RULE_QuadsNotTriples)) { _call_rule (sparql, NAMED_RULE_QuadsNotTriples, error); - _accept (sparql, RULE_TYPE_LITERAL, LITERAL_DOT); + _optional (sparql, RULE_TYPE_LITERAL, LITERAL_DOT); if (_check_in_rule (sparql, NAMED_RULE_TriplesTemplate)) { _call_rule (sparql, NAMED_RULE_TriplesTemplate, error); @@ -4412,7 +4420,7 @@ translate_GroupGraphPatternSub (TrackerSparql *sparql, * query preparation, so they have been left out at the moment. */ _call_rule (sparql, NAMED_RULE_GraphPatternNotTriples, error); - _accept (sparql, RULE_TYPE_LITERAL, LITERAL_DOT); + _optional (sparql, RULE_TYPE_LITERAL, LITERAL_DOT); if (_check_in_rule (sparql, NAMED_RULE_TriplesBlock)) { gboolean do_join; |