chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
First record and playback works.
[adns]
/
src
/
general.c
diff --git
a/src/general.c
b/src/general.c
index 45aec6894d319cd0e3d0d86f632a3b6c2698d418..15025a406c8375a68e60c86c921d24282a087a82 100644
(file)
--- a/
src/general.c
+++ b/
src/general.c
@@
-254,13
+254,15
@@
const char *adns_strerror(adns_status st) {
}
void adns__isort(void *array, int nobjs, int sz, void *tempbuf,
}
void adns__isort(void *array, int nobjs, int sz, void *tempbuf,
- int (*needswap)(const void *a, const void *b)) {
+ int (*needswap)(void *context, const void *a, const void *b),
+ void *context) {
byte *data= array;
int i, place;
for (i=0; i<nobjs; i++) {
byte *data= array;
int i, place;
for (i=0; i<nobjs; i++) {
- for (place= i; place>0 && needswap(data + (place-1)*sz, data + i*sz); place--);
-
+ for (place= i;
+ place>0 && needswap(context, data + (place-1)*sz, data + i*sz);
+ place--);
if (place != i) {
memcpy(tempbuf, data + i*sz, sz);
memmove(data + (place+1)*sz, data + place*sz, (i-place)*sz);
if (place != i) {
memcpy(tempbuf, data + i*sz, sz);
memmove(data + (place+1)*sz, data + place*sz, (i-place)*sz);