aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2020-10-24 14:20:38 +0900
committerMichael Paquier <michael@paquier.xyz>2020-10-24 14:20:38 +0900
commit2771fcee18be0b86d2e008add20f73d175e06e90 (patch)
tree2c4c21e2fce8c89d024a6ba7a452cc516293333b /src
parent0b46e82c06b0c4b0dc6a94a890d23945ebf720fd (diff)
downloadpostgresql-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.c38
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