Categorical value cache added
authorJason Stover <jhs@math.gcsu.edu>
Tue, 22 Nov 2005 22:10:25 +0000 (22:10 +0000)
committerJason Stover <jhs@math.gcsu.edu>
Tue, 22 Nov 2005 22:10:25 +0000 (22:10 +0000)
src/dictionary.c
src/var.h

index c3ed8ac012c00a24df9c3b8c7dbeaa7782c6e312..f916fd0c3fa10219c2600279de622ac2ff721bce 100644 (file)
@@ -24,6 +24,7 @@
 #include "algorithm.h"
 #include "alloc.h"
 #include "case.h"
+#include "cat.h"
 #include "error.h"
 #include "hash.h"
 #include "misc.h"
@@ -299,6 +300,7 @@ dict_create_var (struct dictionary *d, const char *name, int width)
   var_clear_short_name (v);
   v->aux = NULL;
   v->aux_dtor = NULL;
+  v->obs_vals = NULL;
 
   /* Update dictionary. */
   if (d->var_cnt >= d->var_cap) 
@@ -471,6 +473,7 @@ dict_delete_var (struct dictionary *d, struct variable *v)
 
   /* Free memory. */
   val_labs_destroy (v->val_labs);
+  cat_stored_values_destroy (v);
   free (v->label);
   free (v);
 }
index ae81fa8c27a5bd4152517666b81eec0c43438e51..2219dfb30e6ac8687385c33b08927c99c512dcb2 100644 (file)
--- a/src/var.h
+++ b/src/var.h
@@ -24,7 +24,7 @@
 #include <stddef.h>
 #include "config.h"
 #include <stdbool.h>
-
+#include "cat.h"
 #include "format.h"
 #include "missing-values.h"
 
@@ -74,6 +74,11 @@ struct variable
     /* Each command may use these fields as needed. */
     void *aux;
     void (*aux_dtor) (struct variable *);
+
+    /* Values of a categorical variable which.  Procedures need
+       vectors with binary entries, so any variable of type ALPHA will
+       have its values stored here. */
+    struct cat_vals *obs_vals;
   };
 
 /* Variable names. */