Fixed a bug in frequencies.q which would crash on alpha values
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 31 Dec 2003 08:28:06 +0000 (08:28 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 31 Dec 2003 08:28:06 +0000 (08:28 +0000)
src/ChangeLog
src/frequencies.q
tests/Makefile.am

index 4e205f8c5534b283b26b0f32d651ec9070b6e112..4eb438ae0fd3977f4baf8d02c6e72bc25f8e54b3 100644 (file)
@@ -1,3 +1,7 @@
+Wed Dec 31 16:27:33 WAST 2003 John Darrington <john@darrington.wattle.id.au>
+
+       * Fixed bug where FREQ would crash on alpha values
+
 Tue Dec 30 22:42:57 2003  Ben Pfaff  <blp@gnu.org>
 
        * Removed bletcherous alloca() workarounds for AIX from top of
index 52f23357473e628f85839a9aca55d57da507ae61..a9c5850d7ba29f6f3031b0dea7146629443e97a3 100644 (file)
@@ -514,6 +514,8 @@ get_freq_comparator (int frq_sort, int var_type)
     case FRQ_DFREQ | (ALPHA << 16):     return compare_freq_alpha_d;
     default: assert (0);
     }
+
+  return 0;
 }
 
 static int
@@ -831,12 +833,13 @@ hash_value_numeric (const void *value_, void *foo unused)
 
 /* Hash of string values. */
 static unsigned
-hash_value_alpha (const void *value_, void *len_)
+hash_value_alpha (const void *value_, void *len_ unused)
 {
   const struct freq *value = value_;
-  int *len = len_;
 
-  return hsh_hash_bytes (value->v.s, *len);
+  static int len = MAX_SHORT_STRING;
+
+  return hsh_hash_bytes (value->v.s, len);
 }
 
 /* Ascending numeric compare of values. */
index 69bbad95410e585a4ba3544a514c39fc13c7eb20..721520b7deecacfe960fb1fdb7aa0ccd8a84d72b 100644 (file)
@@ -21,6 +21,7 @@ TESTS = command/aggregate.sh \
        command/tabs.sh \
        command/split-file.sh \
        command/weight.sh \
+       bugs/alpha-freq.sh \
        bugs/double-frequency.sh \
        bugs/html-frequency.sh \
        bugs/crosstabs.sh