Merge commit 'origin/stable'
[pspp-builds.git] / src / math / group.c
index 13b545f3855399103dc3c52a196c6d2f01c3818a..3a483671fbb6bca1561943554f9a52517469b56b 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 /* Return -1 if the id of a is less than b; +1 if greater than and
    0 if equal */
 int
-compare_group(const struct group_statistics *a,
-                const struct group_statistics *b,
-                int width)
+compare_group (const void *a_,
+                const void *b_,
+                const void *var)
 {
-  return compare_values(&a->id, &b->id, width);
+  const struct group_statistics *a = a_;
+  const struct group_statistics *b = b_;
+  return value_compare_3way (&a->id, &b->id, var_get_width (var));
 }
 
 
 
-unsigned
-hash_group(const struct group_statistics *g, int width)
+unsigned int
+hash_group (const void *g_, const void *var)
 {
   unsigned id_hash;
+  const struct group_statistics *g = g_;
 
-  id_hash = hash_value(&g->id, width);
+  id_hash = value_hash (&g->id, var_get_width (var), 0);
 
   return id_hash;
 }
 
 
 void
-free_group(struct group_statistics *v, void *aux UNUSED)
+free_group (struct group_statistics *v, void *aux UNUSED)
 {
   free(v);
 }