From 1165471b98eef572bc87e788e7c3c519b9ef73bf Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 17 Apr 2007 08:19:16 -0700 Subject: [PATCH] Maintain bins in sorted order --- mnemon.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mnemon.c b/mnemon.c index a1872bc..f35c0b7 100644 --- a/mnemon.c +++ b/mnemon.c @@ -345,10 +345,16 @@ mnemon_get_bin (mnemon_t *mnemon, for (i = 0; i < mnemon->num_bins; i++) if (mnemon->bins[i].count == count) return &mnemon->bins[i]; + else if (mnemon->bins[i].count > count) + break; mnemon_bins_grow (mnemon); - bin = &mnemon->bins[mnemon->num_bins++]; + bin = &mnemon->bins[i]; + + /* Make room to insert new bin at its sorted location. */ + memmove (bin + 1, bin, (mnemon->num_bins - i) * sizeof (bin_t)); + mnemon->num_bins++; bin_init (bin, count); -- 2.43.0