X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/36369543b62cd8922a096f7877036ec8497bc5a9..9579019a0c8a57a67465cb35775ee0cce0ccf804:/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);