19
19
The bytes are compare as unsigned chars.
22
#include "mysys_priv.h"
23
#include <storage/myisam/myisampack.h>
22
#include "mysys/mysys_priv.h"
23
#include "plugin/myisam/myisampack.h"
25
static int ptr_compare(size_t *compare_length, uchar **a, uchar **b);
26
static int ptr_compare_0(size_t *compare_length, uchar **a, uchar **b);
27
static int ptr_compare_1(size_t *compare_length, uchar **a, uchar **b);
28
static int ptr_compare_2(size_t *compare_length, uchar **a, uchar **b);
29
static int ptr_compare_3(size_t *compare_length, uchar **a, uchar **b);
25
static int ptr_compare(size_t *compare_length, unsigned char **a, unsigned char **b);
26
static int ptr_compare_0(size_t *compare_length, unsigned char **a, unsigned char **b);
27
static int ptr_compare_1(size_t *compare_length, unsigned char **a, unsigned char **b);
28
static int ptr_compare_2(size_t *compare_length, unsigned char **a, unsigned char **b);
29
static int ptr_compare_3(size_t *compare_length, unsigned char **a, unsigned char **b);
31
31
/* Get a pointer to a optimal byte-compare function for a given size */
52
52
#define cmp(N) if (first[N] != last[N]) return (int) first[N] - (int) last[N]
54
static int ptr_compare(size_t *compare_length, uchar **a, uchar **b)
54
static int ptr_compare(size_t *compare_length, unsigned char **a, unsigned char **b)
56
56
register int length= *compare_length;
57
register uchar *first,*last;
57
register unsigned char *first,*last;
59
59
first= *a; last= *b;
69
static int ptr_compare_0(size_t *compare_length,uchar **a, uchar **b)
69
static int ptr_compare_0(size_t *compare_length,unsigned char **a, unsigned char **b)
71
71
register int length= *compare_length;
72
register uchar *first,*last;
72
register unsigned char *first,*last;
74
74
first= *a; last= *b;
90
static int ptr_compare_1(size_t *compare_length,uchar **a, uchar **b)
90
static int ptr_compare_1(size_t *compare_length,unsigned char **a, unsigned char **b)
92
92
register int length= *compare_length-1;
93
register uchar *first,*last;
93
register unsigned char *first,*last;
95
95
first= *a+1; last= *b+1;
111
static int ptr_compare_2(size_t *compare_length,uchar **a, uchar **b)
111
static int ptr_compare_2(size_t *compare_length,unsigned char **a, unsigned char **b)
113
113
register int length= *compare_length-2;
114
register uchar *first,*last;
114
register unsigned char *first,*last;
116
116
first= *a +2 ; last= *b +2;
133
static int ptr_compare_3(size_t *compare_length,uchar **a, uchar **b)
133
static int ptr_compare_3(size_t *compare_length,unsigned char **a, unsigned char **b)
135
135
register int length= *compare_length-3;
136
register uchar *first,*last;
136
register unsigned char *first,*last;
138
138
first= *a +3 ; last= *b +3;
165
165
case 4: mi_int4store(buff,pos); break;
166
166
case 3: mi_int3store(buff,pos); break;
167
167
case 2: mi_int2store(buff,pos); break;
168
case 1: buff[0]= (uchar) pos; break;
168
case 1: buff[0]= (unsigned char) pos; break;
169
169
default: assert(0);
174
my_off_t my_get_ptr(uchar *ptr, size_t pack_length)
174
my_off_t my_get_ptr(unsigned char *ptr, size_t pack_length)
177
177
switch (pack_length) {
184
184
case 4: pos= (my_off_t) mi_uint4korr(ptr); break;
185
185
case 3: pos= (my_off_t) mi_uint3korr(ptr); break;
186
186
case 2: pos= (my_off_t) mi_uint2korr(ptr); break;
187
case 1: pos= (my_off_t) *(uchar*) ptr; break;
187
case 1: pos= (my_off_t) *(unsigned char*) ptr; break;
188
188
default: assert(0); return 0;