diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-01-27 13:25:33 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2017-01-28 13:05:42 +0100 |
commit | 7e4078b5cdf1f41f064eb8d7b154f0ed802940b6 (patch) | |
tree | ad8c4e0c84dffe8ef087ad7a9e46ec9f48041849 /src/libtracker-fts | |
parent | c297ebd28970170427456475e4eb3cc679799f0c (diff) | |
download | tracker-7e4078b5cdf1f41f064eb8d7b154f0ed802940b6.tar.gz |
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
Diffstat (limited to 'src/libtracker-fts')
-rw-r--r-- | src/libtracker-fts/tracker-fts-tokenizer.c | 5 |
1 files changed, 4 insertions, 1 deletions
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, ','); |