formatting
This commit is contained in:
parent
6c5183fe0a
commit
bd77959675
20
src/util.h
20
src/util.h
@ -57,6 +57,7 @@ typedef SORT_COMPARE_FUNC_DEF(sort_compare_func, a, b, udata);
|
||||
|
||||
INLINE void merge_sort_internal(u8 *left, u8 *right, u8 *items, u64 left_count, u64 right_count, u64 item_size, sort_compare_func *callback, void *udata)
|
||||
{
|
||||
/* Sort */
|
||||
u64 i = 0;
|
||||
u64 l = 0;
|
||||
u64 r = 0;
|
||||
@ -74,21 +75,18 @@ INLINE void merge_sort_internal(u8 *left, u8 *right, u8 *items, u64 left_count,
|
||||
}
|
||||
}
|
||||
/* Copy remaining */
|
||||
u64 left_remaining_bytes = (left_count - l) * item_size;
|
||||
u64 right_remaining_bytes = (right_count - r) * item_size;
|
||||
if (left_remaining_bytes > 0) {
|
||||
if (l != left_count) {
|
||||
u64 remaining_count = left_count - l;
|
||||
u64 remaining_bytes = remaining_count * item_size;
|
||||
u8 *dst = items + (i * item_size);
|
||||
u8 *src = left + (l * item_size);
|
||||
MEMCPY(dst, src, left_remaining_bytes);
|
||||
i += left_count - l;
|
||||
l = left_count;
|
||||
}
|
||||
if (right_remaining_bytes > 0) {
|
||||
MEMCPY(dst, src, remaining_bytes);
|
||||
} else if (r != right_count) {
|
||||
u64 remaining_count = right_count - r;
|
||||
u64 remaining_bytes = remaining_count * item_size;
|
||||
u8 *dst = items + (i * item_size);
|
||||
u8 *src = right + (r * item_size);
|
||||
MEMCPY(dst, src, right_remaining_bytes);
|
||||
i += right_count - r;
|
||||
r = right_count;
|
||||
MEMCPY(dst, src, remaining_bytes);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user