From 7e4078b5cdf1f41f064eb8d7b154f0ed802940b6 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 27 Jan 2017 13:25:33 +0100 Subject: libtracker-fts: Clarify code flow The xInst function pointer can't return a <0 column here, so in practical effects an offsets array is ensured to be created on the first iteration. It might not seem like that to the keen eye, nor Coverity. Coverity ID: 1388715 --- src/libtracker-fts/tracker-fts-tokenizer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/libtracker-fts') diff --git a/src/libtracker-fts/tracker-fts-tokenizer.c b/src/libtracker-fts/tracker-fts-tokenizer.c index f6c05edbe..44bb762fe 100644 --- a/src/libtracker-fts/tracker-fts-tokenizer.c +++ b/src/libtracker-fts/tracker-fts-tokenizer.c @@ -207,6 +207,7 @@ tracker_offsets_function (const Fts5ExtensionApi *api, GArray *offsets = NULL; const gchar * const *property_names; gint cur_col = -1; + gboolean first = TRUE; if (n_args > 0) { sqlite3_result_error (ctx, "Invalid argument count", -1); @@ -228,7 +229,7 @@ tracker_offsets_function (const Fts5ExtensionApi *api, rc = api->xInst (fts_ctx, i, &phrase, &col, &n_token); - if (cur_col != col) { + if (first || cur_col != col) { const char *text; int length; @@ -242,6 +243,8 @@ tracker_offsets_function (const Fts5ExtensionApi *api, cur_col = col; } + first = FALSE; + if (str->len != 0) g_string_append_c (str, ','); -- cgit v1.2.1