From c8ca82c11892f8ed331c764a1065abe23bb2f662 Mon Sep 17 00:00:00 2001 From: Pavel Charvat Date: Wed, 26 Sep 2007 09:04:22 +0200 Subject: [PATCH] Fixed buggy switching of buffers in the internal sorter. --- lib/sorter/s-fixint.h | 2 ++ lib/sorter/s-internal.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib/sorter/s-fixint.h b/lib/sorter/s-fixint.h index c8a2b991..b3c712bc 100644 --- a/lib/sorter/s-fixint.h +++ b/lib/sorter/s-fixint.h @@ -77,6 +77,8 @@ static int P(internal)(struct sort_context *ctx, struct sort_bucket *bin, struct , workspace, bin->hash_bits #endif ); + if ((void *)buf != ctx->big_buf) + workspace = ctx->big_buf; ctx->total_int_time += get_timer(&timer); SORT_XTRACE(5, "s-fixint: Writing"); diff --git a/lib/sorter/s-internal.h b/lib/sorter/s-internal.h index 3a7107fe..35ba1f50 100644 --- a/lib/sorter/s-internal.h +++ b/lib/sorter/s-internal.h @@ -177,6 +177,8 @@ static int P(internal)(struct sort_context *ctx, struct sort_bucket *bin, struct , workspace, bin->hash_bits #endif ); + if ((void *)item_array != ctx->big_buf) + workspace = ctx->big_buf; last_item = item_array + count; ctx->total_int_time += get_timer(&timer); -- 2.39.2