summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-03-04 19:25:47 +0100
committerCarlos Garnacho <carlosg@gnome.org>2020-03-04 23:35:19 +0100
commitf44a37d75507e14c2af4505457d251f03b5eb59f (patch)
treea0fb36e8172c5f284fb59aa0bdd9e54d9a829f40
parentd478d391ad00ffff772f65e61c418b80ca9dc6fe (diff)
downloadtracker-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.c18
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;