From bad1a5c217c3d363363d9ccd9656aa0a770d16a9 Mon Sep 17 00:00:00 2001
From: Teodor Sigaev <teodor@sigaev.ru>
Date: Mon, 14 Nov 2005 14:44:06 +0000
Subject: [PATCH] Use postgres-wide macros BITS_PER_BYTE instead self-definenig
 macros, also use it for calculating bit length of TPQTGist

---
 contrib/tsearch2/gistidx.h    | 11 +++++------
 contrib/tsearch2/query_gist.c |  6 ++++--
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/contrib/tsearch2/gistidx.h b/contrib/tsearch2/gistidx.h
index 7e243534fbe..3f72252b05f 100644
--- a/contrib/tsearch2/gistidx.h
+++ b/contrib/tsearch2/gistidx.h
@@ -9,11 +9,10 @@
  * signature defines
  */
 
-#define BITBYTE 8
 #define SIGLENINT  63			/* >121 => key will toast, so it will not work
 								 * !!! */
 #define SIGLEN	( sizeof(int4) * SIGLENINT )
-#define SIGLENBIT (SIGLEN * BITBYTE)
+#define SIGLENBIT (SIGLEN * BITS_PER_BYTE)
 
 typedef char BITVEC[SIGLEN];
 typedef char *BITVECP;
@@ -27,11 +26,11 @@ typedef char *BITVECP;
 								a;\
 				}
 
-#define GETBYTE(x,i) ( *( (BITVECP)(x) + (int)( (i) / BITBYTE ) ) )
+#define GETBYTE(x,i) ( *( (BITVECP)(x) + (int)( (i) / BITS_PER_BYTE ) ) )
 #define GETBITBYTE(x,i) ( ((char)(x)) >> (i) & 0x01 )
-#define CLRBIT(x,i)   GETBYTE(x,i) &= ~( 0x01 << ( (i) % BITBYTE ) )
-#define SETBIT(x,i)   GETBYTE(x,i) |=  ( 0x01 << ( (i) % BITBYTE ) )
-#define GETBIT(x,i) ( (GETBYTE(x,i) >> ( (i) % BITBYTE )) & 0x01 )
+#define CLRBIT(x,i)   GETBYTE(x,i) &= ~( 0x01 << ( (i) % BITS_PER_BYTE ) )
+#define SETBIT(x,i)   GETBYTE(x,i) |=  ( 0x01 << ( (i) % BITS_PER_BYTE ) )
+#define GETBIT(x,i) ( (GETBYTE(x,i) >> ( (i) % BITS_PER_BYTE )) & 0x01 )
 
 #define HASHVAL(val) (((unsigned int)(val)) % SIGLENBIT)
 #define HASH(sign, val) SETBIT((sign), HASHVAL(val))
diff --git a/contrib/tsearch2/query_gist.c b/contrib/tsearch2/query_gist.c
index 34bbf371975..c14ece0112a 100644
--- a/contrib/tsearch2/query_gist.c
+++ b/contrib/tsearch2/query_gist.c
@@ -7,6 +7,8 @@
 #include "query.h"
 
 typedef uint64 TPQTGist;
+#define	SIGLEN	(sizeof(TPQTGist)*BITS_PER_BYTE)
+
 
 #define GETENTRY(vec,pos) ((TPQTGist *) DatumGetPointer((vec)->vector[(pos)].key))
 
@@ -24,7 +26,7 @@ makesign(QUERYTYPE* a) {
 
         for (i = 0; i < a->size; i++) {
 		if ( ptr->type == VAL )
-			sign |= 1 << (ptr->val % 64);
+			sign |= 1 << (ptr->val % SIGLEN);
 		ptr++;
 	}
 		 
@@ -198,7 +200,7 @@ static int
 sizebitvec(TPQTGist sign) {
 	int size=0,i;
 
-	for(i=0;i<64;i++) 
+	for(i=0;i<SIGLEN;i++) 
 		size += 0x01 & (sign>>i);
 
 	return size;
-- 
GitLab