Minor cleanup and spot fixes.
[pspp] / src / data / category.c
index 55d7ca8b05addbe392424f1114755d9e4629645d..cfde533116d9337665548163b81320e04edade0f 100644 (file)
   'cat_var'.
 */
 #include <config.h>
+
+#include "category.h"
+
+#include <assert.h>
 #include <stdlib.h>
+#include <string.h>
+
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
-#include "category.h"
 #include "cat-routines.h"
-#include <string.h>
 #include "variable.h"
 
 #define N_INITIAL_CATEGORIES 1
@@ -59,9 +63,16 @@ void
 cat_stored_values_destroy (struct variable *v)
 {
   assert (v != NULL);
+
   if (v->obs_vals != NULL)
     {
+      if (v->obs_vals->n_allocated_categories > 0)
+       {
+         free (v->obs_vals->vals);
+         v->obs_vals->vals = NULL;
+       }
       free (v->obs_vals);
+      v->obs_vals = NULL;
     }
 }