dovecot-2.2: lib-fts: Added asserts to make sure we don't return...
dovecot at dovecot.org
dovecot at dovecot.org
Mon May 11 11:12:20 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/13461d146be0
changeset: 18630:13461d146be0
user: Timo Sirainen <tss at iki.fi>
date: Mon May 11 14:10:24 2015 +0300
description:
lib-fts: Added asserts to make sure we don't return empty tokens.
diffstat:
src/lib-fts/fts-filter.c | 4 +++-
src/lib-fts/fts-tokenizer.c | 9 ++++++---
2 files changed, 9 insertions(+), 4 deletions(-)
diffs (52 lines):
diff -r 9c4d1e1e252f -r 13461d146be0 src/lib-fts/fts-filter.c
--- a/src/lib-fts/fts-filter.c Mon May 11 12:28:58 2015 +0300
+++ b/src/lib-fts/fts-filter.c Mon May 11 14:10:24 2015 +0300
@@ -105,7 +105,9 @@
if (ret <= 0)
*token = NULL;
- else
+ else {
i_assert(*token != NULL);
+ i_assert((*token)[0] != '\0');
+ }
return ret;
}
diff -r 9c4d1e1e252f -r 13461d146be0 src/lib-fts/fts-tokenizer.c
--- a/src/lib-fts/fts-tokenizer.c Mon May 11 12:28:58 2015 +0300
+++ b/src/lib-fts/fts-tokenizer.c Mon May 11 14:10:24 2015 +0300
@@ -173,7 +173,7 @@
case FTS_TOKENIZER_PARENT_STATE_ADD_DATA:
ret = fts_tokenizer_next_self(tok, data, size, token_r, error_r);
if (ret <= 0 || tok->parent == NULL || tok->skip_parents)
- return ret;
+ break;
buffer_set_used_size(tok->parent_input, 0);
buffer_append(tok->parent_input, *token_r, strlen(*token_r));
tok->parent_state++;
@@ -182,13 +182,13 @@
ret = fts_tokenizer_next(tok->parent, tok->parent_input->data,
tok->parent_input->used, token_r, error_r);
if (ret != 0)
- return ret;
+ break;
tok->parent_state++;
/* fall through */
case FTS_TOKENIZER_PARENT_STATE_FINALIZE:
ret = fts_tokenizer_next(tok->parent, NULL, 0, token_r, error_r);
if (ret != 0)
- return ret;
+ break;
/* we're finished sending this token to parent tokenizer.
see if our own tokenizer has more tokens available */
tok->parent_state = FTS_TOKENIZER_PARENT_STATE_ADD_DATA;
@@ -196,6 +196,9 @@
default:
i_unreached();
}
+ /* we must not be returning empty tokens */
+ i_assert(ret <= 0 || (*token_r)[0] != '\0');
+ return ret;
}
int fts_tokenizer_final(struct fts_tokenizer *tok, const char **token_r,
More information about the dovecot-cvs
mailing list