diff options
author | Jim Meyering <meyering@redhat.com> | 2012-01-28 19:06:41 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2012-01-31 13:22:05 +0100 |
commit | 29f8e60509646c1d8600129dc76c63266d445e0b (patch) | |
tree | 7d8cdb9ebb6441fe1342296e0bdc286d0438af3e /src | |
parent | 6835b68f981f53f9b91680e9acfb64cdfc6b870b (diff) | |
download | idutils-29f8e60509646c1d8600129dc76c63266d445e0b.tar.gz idutils-29f8e60509646c1d8600129dc76c63266d445e0b.tar.bz2 idutils-29f8e60509646c1d8600129dc76c63266d445e0b.zip |
build: work around new warning/suggestion to use "pure"
* src/mkid.c (check_hits): Change semantics to avoid the warning
that this assert-containing function could be declared with the
"pure" attribute. Instead, return 0/1, declare "pure" and let
the caller perform the assertion. Rename from assert_hits.
Add a comment.
Diffstat (limited to 'src')
-rw-r--r-- | src/mkid.c | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -86,7 +86,7 @@ static int count_vec_size (struct summary *summary, unsigned char const *tail_hits); static int count_buf_size (struct summary *summary, unsigned char const *tail_hits); -static void assert_hits (struct summary* summary); +static int check_hits (struct summary* summary) _GL_ATTRIBUTE_PURE; static void write_hits (FILE *fp, struct summary *summary, unsigned char const *tail_hits); static void sign_token (struct token *token); @@ -764,7 +764,7 @@ write_id_file (struct idhead *idhp) putc ('\0', idhp->idh_FILE); putc ('\0', idhp->idh_FILE); } - assert_hits (summary_root); + assert (check_hits (summary_root) == 0); idhp->idh_tokens = token_table.ht_fill; off = ftello (idhp->idh_FILE); if (UINT32_MAX < off) @@ -983,19 +983,25 @@ count_buf_size (struct summary *summary, unsigned char const *tail_hits) } } -static void -assert_hits (struct summary* summary) +/* Sanity-check hit counts. Return nonzero if there's a problem. + Otherwise, return 0. */ +static int +check_hits (struct summary* summary) { struct summary **kids = summary->sum_kids; struct summary **end = &kids[8]; - assert (summary->sum_hits == NULL || *summary->sum_hits == 0); + if ( ! (summary->sum_hits == NULL || *summary->sum_hits == 0)) + return 1; if (end[-1] == 0) while (*--end == 0) ; while (kids < end) - assert_hits (*kids++); + if (check_hits (*kids++)) + return 1; + + return 0; } static void |