X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/adns/blobdiff_plain/36369543b62cd8922a096f7877036ec8497bc5a9..70a778e57fbc29a2d2bc8976745a18f4edd1a03a:/src/general.c diff --git a/src/general.c b/src/general.c index 45aec68..15025a4 100644 --- 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, - 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; i0 && 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);