Fix compilation warning in unicode_norm.c
authorMichael Paquier <[email protected]>
Mon, 12 Oct 2020 11:34:55 +0000 (20:34 +0900)
committerMichael Paquier <[email protected]>
Mon, 12 Oct 2020 11:34:55 +0000 (20:34 +0900)
80f8eb7 has introduced in unicode_norm.c some new code that uses
htonl().  On at least some FreeBSD environments, it is possible to find
that this function is undeclared, causing a compilation warning.  It is
worth noting that no buildfarm members have reported this issue.

Instead of adding a new inclusion to arpa/inet.h, switch to use
the equivalent defined in pg_bswap.h, to benefit from any built-in
function if the compiler has one.

Reported-by: Masahiko Sawada
Discussion: https://postgr.es/m/CA+fd4k7D4b12ShywWj=AbcHZzV1-OqMjNe7RZAu+tgz5rd_11A@mail.gmail.com

src/common/unicode_norm.c

index 626645ac87058b70c06bdca2a661bab6944cdaf0..4bb6a0f58738a2ffa9489576ad8bbea22478ea51 100644 (file)
@@ -23,6 +23,7 @@
 #ifndef FRONTEND
 #include "common/unicode_normprops_table.h"
 #endif
+#include "port/pg_bswap.h"
 
 #ifndef FRONTEND
 #define ALLOC(size) palloc(size)
@@ -475,7 +476,7 @@ qc_hash_lookup(pg_wchar ch, const pg_unicode_norminfo *norminfo)
     * Compute the hash function. The hash key is the codepoint with the bytes
     * in network order.
     */
-   hashkey = htonl(ch);
+   hashkey = pg_hton32(ch);
    h = norminfo->hash(&hashkey);
 
    /* An out-of-range result implies no match */