Fix assertion for proper Huffman merge pattern: 0 == 1 modulo 1.
authorBen Pfaff <blp@gnu.org>
Thu, 6 Jan 2005 05:29:46 +0000 (05:29 +0000)
committerBen Pfaff <blp@gnu.org>
Thu, 6 Jan 2005 05:29:46 +0000 (05:29 +0000)
src/ChangeLog
src/sort.c

index 39ba57a45c03ea778592f70e3caba0c968695f24..2e1ecee5323b6006ce36c2d35014c6fc044ca744 100644 (file)
@@ -1,3 +1,10 @@
+Wed Jan  5 21:23:31 2005  Ben Pfaff  <blp@gnu.org>
+
+       * sort.c: (merge) Fix assertion for proper Huffman merge pattern:
+       0 == 1 modulo 1.  See Knuth 5.4.9 (vol. 3, 2nd ed.,
+       pp. 361).  Thanks to John Darrington <john@cellform.com.au> for
+       reporting the bug.
+
 Wed Jan  5 22:42:26 WST 2005 John Darrington <john@darrington.wattle.id.au>
 
        * case.h Fixed bug # 11307
@@ -159,7 +166,6 @@ Tue Nov 16 13:19:18 WST 2004 John Darrington <john@darrington.wattle.id.au>
 
        * permissions.c command.def Added the PERMISSIONS command
 
->>>>>>> 1.110
 Mon Nov 15 01:33:32 2004  Ben Pfaff  <blp@gnu.org>
 
        * q2c.c: (dump_header) Don't try to emit #includes at very top of
@@ -386,7 +392,6 @@ Mon Nov 15 00:30:33 2004  Ben Pfaff  <blp@gnu.org>
        (var_dtor_free) New function.
        (discard_variables) Use NULL instead of inline_file.
 
->>>>>>> 1.106
 Fri Nov 12 10:07:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
 
        * value-labs.c  Fixed the implmentation of value_to_string, so 
index 33c5651d9bd8b225a5d144bc35953a5333c00150..5a6cf6a11ed355735e56b105928570f1820b5687 100644 (file)
@@ -752,7 +752,7 @@ merge (struct external_sort *xsrt)
   make_heap (xsrt->initial_runs, xsrt->run_cnt, sizeof *xsrt->initial_runs,
              compare_initial_runs, NULL);
   dummy_run_cnt = mod (1 - (int) xsrt->run_cnt, max_order - 1);
-  assert (max_order == 1
+  assert (max_order == 2
           || (xsrt->run_cnt + dummy_run_cnt) % (max_order - 1) == 1);
   while (xsrt->run_cnt > 1)
     {