diff --git a/include/tlibc/algorithms.h b/include/tlibc/algorithms.h index ae4566a..259ff95 100644 --- a/include/tlibc/algorithms.h +++ b/include/tlibc/algorithms.h @@ -5,11 +5,12 @@ #define insertionSort_inline(arr, n, field) \ for(i32 i = 1, j; i < (i32)n; i++) { \ j = i; \ - while( j > 0 && arr[j - 1]field > arr[i]field){\ + typeof(arr[i]) t = arr[i];\ + while(j > 0 && arr[j - 1]field > t##field){\ arr[j] = arr[j - 1]; \ j--; \ } \ - arr[j] = arr[i]; \ + arr[j] = t; \ } \ #define binarySearch_inline(arr, n, key, field, out_index) {\