~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysys/ptr_cmp.c

Removed reference to aio.h - we don't reference its use anywhere.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
  The bytes are compare as unsigned chars.
20
20
  */
21
21
 
22
 
#include "config.h"
23
 
#include "drizzled/internal/my_sys.h"
24
 
 
25
 
#include <assert.h>
26
 
 
27
 
#include "plugin/myisam/myisampack.h"
28
 
 
29
 
namespace drizzled
30
 
{
31
 
namespace internal
32
 
{
33
 
 
34
 
static int ptr_compare(size_t *compare_length, unsigned char **a, unsigned char **b);
35
 
static int ptr_compare_0(size_t *compare_length, unsigned char **a, unsigned char **b);
36
 
static int ptr_compare_1(size_t *compare_length, unsigned char **a, unsigned char **b);
37
 
static int ptr_compare_2(size_t *compare_length, unsigned char **a, unsigned char **b);
38
 
static int ptr_compare_3(size_t *compare_length, unsigned char **a, unsigned char **b);
 
22
#include "mysys_priv.h"
 
23
#include <myisampack.h>
 
24
 
 
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);
39
30
 
40
31
        /* Get a pointer to a optimal byte-compare function for a given size */
41
32
 
60
51
 
61
52
#define cmp(N) if (first[N] != last[N]) return (int) first[N] - (int) last[N]
62
53
 
63
 
static int ptr_compare(size_t *compare_length, unsigned char **a, unsigned char **b)
 
54
static int ptr_compare(size_t *compare_length, uchar **a, uchar **b)
64
55
{
65
56
  register int length= *compare_length;
66
 
  register unsigned char *first,*last;
 
57
  register uchar *first,*last;
67
58
 
68
59
  first= *a; last= *b;
69
60
  while (--length)
75
66
}
76
67
 
77
68
 
78
 
static int ptr_compare_0(size_t *compare_length,unsigned char **a, unsigned char **b)
 
69
static int ptr_compare_0(size_t *compare_length,uchar **a, uchar **b)
79
70
{
80
71
  register int length= *compare_length;
81
 
  register unsigned char *first,*last;
 
72
  register uchar *first,*last;
82
73
 
83
74
  first= *a; last= *b;
84
75
 loop:
96
87
}
97
88
 
98
89
 
99
 
static int ptr_compare_1(size_t *compare_length,unsigned char **a, unsigned char **b)
 
90
static int ptr_compare_1(size_t *compare_length,uchar **a, uchar **b)
100
91
{
101
92
  register int length= *compare_length-1;
102
 
  register unsigned char *first,*last;
 
93
  register uchar *first,*last;
103
94
 
104
95
  first= *a+1; last= *b+1;
105
96
  cmp(-1);
117
108
  return (0);
118
109
}
119
110
 
120
 
static int ptr_compare_2(size_t *compare_length,unsigned char **a, unsigned char **b)
 
111
static int ptr_compare_2(size_t *compare_length,uchar **a, uchar **b)
121
112
{
122
113
  register int length= *compare_length-2;
123
 
  register unsigned char *first,*last;
 
114
  register uchar *first,*last;
124
115
 
125
116
  first= *a +2 ; last= *b +2;
126
117
  cmp(-2);
139
130
  return (0);
140
131
}
141
132
 
142
 
static int ptr_compare_3(size_t *compare_length,unsigned char **a, unsigned char **b)
 
133
static int ptr_compare_3(size_t *compare_length,uchar **a, uchar **b)
143
134
{
144
135
  register int length= *compare_length-3;
145
 
  register unsigned char *first,*last;
 
136
  register uchar *first,*last;
146
137
 
147
138
  first= *a +3 ; last= *b +3;
148
139
  cmp(-3);
162
153
  return (0);
163
154
}
164
155
 
165
 
void my_store_ptr(unsigned char *buff, size_t pack_length, my_off_t pos)
 
156
void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos)
166
157
{
167
158
  switch (pack_length) {
168
159
#if SIZEOF_OFF_T > 4
174
165
  case 4: mi_int4store(buff,pos); break;
175
166
  case 3: mi_int3store(buff,pos); break;
176
167
  case 2: mi_int2store(buff,pos); break;
177
 
  case 1: buff[0]= (unsigned char) pos; break;
178
 
  default: assert(0);
 
168
  case 1: buff[0]= (uchar) pos; break;
 
169
  default: DBUG_ASSERT(0);
179
170
  }
180
171
  return;
181
172
}
182
173
 
183
 
my_off_t my_get_ptr(unsigned char *ptr, size_t pack_length)
 
174
my_off_t my_get_ptr(uchar *ptr, size_t pack_length)
184
175
{
185
176
  my_off_t pos;
186
177
  switch (pack_length) {
193
184
  case 4: pos= (my_off_t) mi_uint4korr(ptr); break;
194
185
  case 3: pos= (my_off_t) mi_uint3korr(ptr); break;
195
186
  case 2: pos= (my_off_t) mi_uint2korr(ptr); break;
196
 
  case 1: pos= (my_off_t) *(unsigned char*) ptr; break;
197
 
  default: assert(0); return 0;
 
187
  case 1: pos= (my_off_t) *(uchar*) ptr; break;
 
188
  default: DBUG_ASSERT(0); return 0;
198
189
  }
199
190
 return pos;
200
191
}
201
192
 
202
 
} /* namespace internal */
203
 
} /* namespace drizzled */