Fri, 23 May 2025 12:44:24 +0200
make test-compile depend on both static and shared
the shared lib is not needed for the tests,
but when run with coverage, gcov will be confused
when outdated line information is available from
a previous shared build
601 | 1 | /* |
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | |
3 | * | |
4 | * Copyright 2021 Mike Becker, Olaf Wintermann All rights reserved. | |
5 | * | |
6 | * Redistribution and use in source and binary forms, with or without | |
7 | * modification, are permitted provided that the following conditions are met: | |
8 | * | |
9 | * 1. Redistributions of source code must retain the above copyright | |
10 | * notice, this list of conditions and the following disclaimer. | |
11 | * | |
12 | * 2. Redistributions in binary form must reproduce the above copyright | |
13 | * notice, this list of conditions and the following disclaimer in the | |
14 | * documentation and/or other materials provided with the distribution. | |
15 | * | |
16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
26 | * POSSIBILITY OF SUCH DAMAGE. | |
27 | */ | |
28 | ||
29 | #include "cx/compare.h" | |
30 | ||
31 | #include <math.h> | |
32 | ||
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
33 | int cx_vcmp_int(int a, int b) { |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
34 | if (a == b) { |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
35 | return 0; |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
36 | } else { |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
37 | return a < b ? -1 : 1; |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
38 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
39 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
40 | |
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
41 | int cx_cmp_int(const void *i1, const void *i2) { |
678 | 42 | int a = *((const int *) i1); |
43 | int b = *((const int *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
44 | return cx_vcmp_int(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
45 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
46 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
47 | int cx_vcmp_longint(long int a, long int b) { |
601 | 48 | if (a == b) { |
49 | return 0; | |
50 | } else { | |
51 | return a < b ? -1 : 1; | |
52 | } | |
53 | } | |
54 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
55 | int cx_cmp_longint(const void *i1, const void *i2) { |
678 | 56 | long int a = *((const long int *) i1); |
57 | long int b = *((const long int *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
58 | return cx_vcmp_longint(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
59 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
60 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
61 | int cx_vcmp_longlong(long long a, long long b) { |
601 | 62 | if (a == b) { |
63 | return 0; | |
64 | } else { | |
65 | return a < b ? -1 : 1; | |
66 | } | |
67 | } | |
68 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
69 | int cx_cmp_longlong(const void *i1, const void *i2) { |
678 | 70 | long long a = *((const long long *) i1); |
71 | long long b = *((const long long *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
72 | return cx_vcmp_longlong(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
73 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
74 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
75 | int cx_vcmp_int16(int16_t a, int16_t b) { |
601 | 76 | if (a == b) { |
77 | return 0; | |
78 | } else { | |
79 | return a < b ? -1 : 1; | |
80 | } | |
81 | } | |
82 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
83 | int cx_cmp_int16(const void *i1, const void *i2) { |
678 | 84 | int16_t a = *((const int16_t *) i1); |
85 | int16_t b = *((const int16_t *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
86 | return cx_vcmp_int16(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
87 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
88 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
89 | int cx_vcmp_int32(int32_t a, int32_t b) { |
601 | 90 | if (a == b) { |
91 | return 0; | |
92 | } else { | |
93 | return a < b ? -1 : 1; | |
94 | } | |
95 | } | |
96 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
97 | int cx_cmp_int32(const void *i1, const void *i2) { |
678 | 98 | int32_t a = *((const int32_t *) i1); |
99 | int32_t b = *((const int32_t *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
100 | return cx_vcmp_int32(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
101 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
102 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
103 | int cx_vcmp_int64(int64_t a, int64_t b) { |
601 | 104 | if (a == b) { |
105 | return 0; | |
106 | } else { | |
107 | return a < b ? -1 : 1; | |
108 | } | |
109 | } | |
110 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
111 | int cx_cmp_int64(const void *i1, const void *i2) { |
678 | 112 | int64_t a = *((const int64_t *) i1); |
113 | int64_t b = *((const int64_t *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
114 | return cx_vcmp_int64(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
115 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
116 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
117 | int cx_vcmp_uint(unsigned int a, unsigned int b) { |
601 | 118 | if (a == b) { |
119 | return 0; | |
120 | } else { | |
121 | return a < b ? -1 : 1; | |
122 | } | |
123 | } | |
124 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
125 | int cx_cmp_uint(const void *i1, const void *i2) { |
678 | 126 | unsigned int a = *((const unsigned int *) i1); |
127 | unsigned int b = *((const unsigned int *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
128 | return cx_vcmp_uint(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
129 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
130 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
131 | int cx_vcmp_ulongint(unsigned long int a, unsigned long int b) { |
601 | 132 | if (a == b) { |
133 | return 0; | |
134 | } else { | |
135 | return a < b ? -1 : 1; | |
136 | } | |
137 | } | |
138 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
139 | int cx_cmp_ulongint(const void *i1, const void *i2) { |
678 | 140 | unsigned long int a = *((const unsigned long int *) i1); |
141 | unsigned long int b = *((const unsigned long int *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
142 | return cx_vcmp_ulongint(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
143 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
144 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
145 | int cx_vcmp_ulonglong(unsigned long long a, unsigned long long b) { |
601 | 146 | if (a == b) { |
147 | return 0; | |
148 | } else { | |
149 | return a < b ? -1 : 1; | |
150 | } | |
151 | } | |
152 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
153 | int cx_cmp_ulonglong(const void *i1, const void *i2) { |
678 | 154 | unsigned long long a = *((const unsigned long long *) i1); |
155 | unsigned long long b = *((const unsigned long long *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
156 | return cx_vcmp_ulonglong(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
157 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
158 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
159 | int cx_vcmp_uint16(uint16_t a, uint16_t b) { |
601 | 160 | if (a == b) { |
161 | return 0; | |
162 | } else { | |
163 | return a < b ? -1 : 1; | |
164 | } | |
165 | } | |
166 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
167 | int cx_cmp_uint16(const void *i1, const void *i2) { |
678 | 168 | uint16_t a = *((const uint16_t *) i1); |
169 | uint16_t b = *((const uint16_t *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
170 | return cx_vcmp_uint16(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
171 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
172 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
173 | int cx_vcmp_uint32(uint32_t a, uint32_t b) { |
601 | 174 | if (a == b) { |
175 | return 0; | |
176 | } else { | |
177 | return a < b ? -1 : 1; | |
178 | } | |
179 | } | |
180 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
181 | int cx_cmp_uint32(const void *i1, const void *i2) { |
678 | 182 | uint32_t a = *((const uint32_t *) i1); |
183 | uint32_t b = *((const uint32_t *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
184 | return cx_vcmp_uint32(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
185 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
186 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
187 | int cx_vcmp_uint64(uint64_t a, uint64_t b) { |
601 | 188 | if (a == b) { |
189 | return 0; | |
190 | } else { | |
191 | return a < b ? -1 : 1; | |
192 | } | |
193 | } | |
194 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
195 | int cx_cmp_uint64(const void *i1, const void *i2) { |
678 | 196 | uint64_t a = *((const uint64_t *) i1); |
197 | uint64_t b = *((const uint64_t *) i2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
198 | return cx_vcmp_uint64(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
199 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
200 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
201 | int cx_vcmp_float(float a, float b) { |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
202 | if (fabsf(a - b) < 1e-6f) { |
601 | 203 | return 0; |
204 | } else { | |
205 | return a < b ? -1 : 1; | |
206 | } | |
207 | } | |
208 | ||
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
209 | int cx_cmp_float(const void *f1, const void *f2) { |
678 | 210 | float a = *((const float *) f1); |
211 | float b = *((const float *) f2); | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
212 | return cx_vcmp_float(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
213 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
214 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
215 | int cx_vcmp_double(double a, double b) { |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
216 | if (fabs(a - b) < 1e-14) { |
601 | 217 | return 0; |
218 | } else { | |
219 | return a < b ? -1 : 1; | |
220 | } | |
221 | } | |
222 | ||
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
223 | int cx_cmp_double( |
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
224 | const void *d1, |
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
225 | const void *d2 |
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
226 | ) { |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
227 | double a = *((const double *) d1); |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
228 | double b = *((const double *) d2); |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
229 | return cx_vcmp_double(a, b); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
230 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
231 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
232 | int cx_vcmp_intptr(intptr_t p1, intptr_t p2) { |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
233 | if (p1 == p2) { |
601 | 234 | return 0; |
235 | } else { | |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
236 | return p1 < p2 ? -1 : 1; |
601 | 237 | } |
238 | } | |
239 | ||
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
240 | int cx_cmp_intptr( |
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
241 | const void *ptr1, |
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
242 | const void *ptr2 |
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
243 | ) { |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
244 | intptr_t p1 = *(const intptr_t *) ptr1; |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
245 | intptr_t p2 = *(const intptr_t *) ptr2; |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
246 | return cx_vcmp_intptr(p1, p2); |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
247 | } |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
248 | |
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
249 | int cx_vcmp_uintptr(uintptr_t p1, uintptr_t p2) { |
601 | 250 | if (p1 == p2) { |
251 | return 0; | |
252 | } else { | |
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
253 | return p1 < p2 ? -1 : 1; |
601 | 254 | } |
255 | } | |
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
256 | |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
257 | int cx_cmp_uintptr( |
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
258 | const void *ptr1, |
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
259 | const void *ptr2 |
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
260 | ) { |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
261 | uintptr_t p1 = *(const uintptr_t *) ptr1; |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
262 | uintptr_t p2 = *(const uintptr_t *) ptr2; |
1062
8baed9b38bc6
add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents:
890
diff
changeset
|
263 | return cx_vcmp_uintptr(p1, p2); |
631
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
264 | } |
406376e64fd8
tests for compare functions
Mike Becker <universe@uap-core.de>
parents:
601
diff
changeset
|
265 | |
762
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
266 | int cx_cmp_ptr( |
890
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
267 | const void *ptr1, |
54565fd74e74
move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents:
762
diff
changeset
|
268 | const void *ptr2 |
762
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
269 | ) { |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
270 | uintptr_t p1 = (uintptr_t) ptr1; |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
271 | uintptr_t p2 = (uintptr_t) ptr2; |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
272 | if (p1 == p2) { |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
273 | return 0; |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
274 | } else { |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
275 | return p1 < p2 ? -1 : 1; |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
276 | } |
4523f6d42512
add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents:
678
diff
changeset
|
277 | } |