From 405400e1a658bfabc64236158c5be2098d68667d Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 9 Feb 2007 23:58:55 +0100 Subject: [PATCH] Fixed bug in printing of bucket sizes. --- lib/sorter/common.h | 3 --- lib/sorter/govern.c | 8 ++++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/sorter/common.h b/lib/sorter/common.h index 52949657..3097ea2d 100644 --- a/lib/sorter/common.h +++ b/lib/sorter/common.h @@ -98,9 +98,6 @@ sh_off_t sbuck_size(struct sort_bucket *b); struct fastbuf *sbuck_read(struct sort_bucket *b); struct fastbuf *sbuck_write(struct sort_bucket *b); void sbuck_swap_out(struct sort_bucket *b); - -#define F_SIZE(x) ({ byte buf[16]; format_size(buf, x); buf; }) -#define F_BSIZE(b) F_SIZE(sbuck_size(b)) void format_size(byte *buf, u64 x); #endif diff --git a/lib/sorter/govern.c b/lib/sorter/govern.c index 9b8ee774..297692c5 100644 --- a/lib/sorter/govern.c +++ b/lib/sorter/govern.c @@ -15,6 +15,10 @@ #include #include #include +#include + +#define F_SIZE(x) ({ byte *buf = alloca(16); format_size(buf, x); buf; }) +#define F_BSIZE(b) F_SIZE(sbuck_size(b)) static u64 sorter_clock(void) @@ -179,7 +183,7 @@ sorter_radix(struct sort_context *ctx, struct sort_bucket *b) SORT_XTRACE(2, "Running radix sort on %s with %d bits of %d", F_BSIZE(b), bits, b->hash_bits); sorter_start_timer(ctx); - struct sort_bucket *outs[nbuck]; + struct sort_bucket **outs = alloca(nbuck * sizeof(struct sort_bucket *)); for (uns i=nbuck; i--; ) { outs[i] = sbuck_new(ctx); @@ -189,7 +193,7 @@ sorter_radix(struct sort_context *ctx, struct sort_bucket *b) ctx->radix_split(ctx, b, outs, b->hash_bits - bits, bits); - u64 min = ~0U, max = 0, sum = 0; + u64 min = ~(u64)0, max = 0, sum = 0; for (uns i=0; i