[tracker/wip/carlosg/coverity-fixes: 1/8] libtracker-data: Add _optional() to complement _accept()



commit f44a37d75507e14c2af4505457d251f03b5eb59f
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Mar 4 19:25:47 2020 +0100

    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

 src/libtracker-data/tracker-sparql.c | 18 +++++++++++++-----
 1 file 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
@@ -416,6 +416,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)
 {
@@ -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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]