diff options
author | Michael Paquier <michael@paquier.xyz> | 2020-10-24 14:20:38 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2020-10-24 14:20:38 +0900 |
commit | 2771fcee18be0b86d2e008add20f73d175e06e90 (patch) | |
tree | 2c4c21e2fce8c89d024a6ba7a452cc516293333b /src | |
parent | 0b46e82c06b0c4b0dc6a94a890d23945ebf720fd (diff) | |
download | postgresql-2771fcee18be0b86d2e008add20f73d175e06e90.tar.gz postgresql-2771fcee18be0b86d2e008add20f73d175e06e90.zip |
Fix issue with --enable-coverage and the new unicode {de,re}composition code
genhtml has been generating the following warning with this new code:
WARNING: function data mismatch at /path/src/common/unicode_norm.c:102
HTML coverage reports care about the uniqueness of functions defined in
source files, ignoring any assumptions around CFLAGS. 783f0cc
introduced a duplicated definition of get_code_entry(), leading to a
warning and potentially some incorrect data generated in the reports.
This refactors the code so as the code has only one function
declaration, fixing the warning.
Oversight in 783f0cc.
Reported-by: Tom Lane
Author: Michael Paquier
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/207789.1603469272@sss.pgh.pa.us
Diffstat (limited to 'src')
-rw-r--r-- | src/common/unicode_norm.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/src/common/unicode_norm.c b/src/common/unicode_norm.c index 4ffce0e6193..abb83cbf985 100644 --- a/src/common/unicode_norm.c +++ b/src/common/unicode_norm.c @@ -46,6 +46,21 @@ #define NCOUNT VCOUNT * TCOUNT #define SCOUNT LCOUNT * NCOUNT +#ifdef FRONTEND +/* comparison routine for bsearch() of decomposition lookup table. */ +static int +conv_compare(const void *p1, const void *p2) +{ + uint32 v1, + v2; + + v1 = *(const uint32 *) p1; + v2 = ((const pg_unicode_decomposition *) p2)->codepoint; + return (v1 > v2) ? 1 : ((v1 == v2) ? 0 : -1); +} + +#endif + /* * get_code_entry * @@ -53,11 +68,10 @@ * The backend version of this code uses a perfect hash function for the * lookup, while the frontend version uses a binary search. */ -#ifndef FRONTEND - static const pg_unicode_decomposition * get_code_entry(pg_wchar code) { +#ifndef FRONTEND int h; uint32 hashkey; pg_unicode_decompinfo decompinfo = UnicodeDecompInfo; @@ -82,33 +96,15 @@ get_code_entry(pg_wchar code) /* Success! */ return &decompinfo.decomps[h]; -} - #else - -/* comparison routine for bsearch() of decomposition lookup table. */ -static int -conv_compare(const void *p1, const void *p2) -{ - uint32 v1, - v2; - - v1 = *(const uint32 *) p1; - v2 = ((const pg_unicode_decomposition *) p2)->codepoint; - return (v1 > v2) ? 1 : ((v1 == v2) ? 0 : -1); -} - -static const pg_unicode_decomposition * -get_code_entry(pg_wchar code) -{ return bsearch(&(code), UnicodeDecompMain, lengthof(UnicodeDecompMain), sizeof(pg_unicode_decomposition), conv_compare); +#endif } -#endif /* !FRONTEND */ /* * Given a decomposition entry looked up earlier, get the decomposed |