Change how checking for missing values works.
[pspp] / src / data / mdd-writer.c
index 5e5eaa743dc0b639715329ee00d3c76185b38eed..b025e693b4625c572ac08beda09d691206ade99c 100644 (file)
@@ -122,7 +122,7 @@ all_variables (struct dictionary *dict);
 struct all_dict_variables
 all_variables (struct dictionary *dict)
 {
-  size_t n_vars = dict_get_var_cnt (dict);
+  size_t n_vars = dict_get_n_vars (dict);
 
   /* Start with a set of all variable names. */
   struct string_set var_names = STRING_SET_INITIALIZER (var_names);
@@ -405,10 +405,9 @@ write_variable_section (xmlTextWriter *writer, const struct variable *var, int i
 
              XXX only checking "user" here because not sure of correct other
              cases. */
-          if (var_is_value_missing (var, value, MV_USER))
-            write_attr (writer, "missing", "user");
-          else if (var_is_value_missing (var, value, MV_SYSTEM))
-            write_attr (writer, "missing", "system");
+          enum mv_class miss = var_is_value_missing (var, value);
+          if (miss)
+            write_attr (writer, "missing", miss == MV_USER ? "user" : "system");
 
           /* <properties/> */
           xmlTextWriterStartElement (writer, _xml ("properties"));
@@ -448,8 +447,8 @@ bool
 mdd_write (struct file_handle *fh, struct dictionary *dict,
            const char *sav_name)
 {
-  struct mdd_writer *w = xzalloc (sizeof *w);
-  size_t n_vars = dict_get_var_cnt (dict);
+  struct mdd_writer *w = XZALLOC (struct mdd_writer);
+  size_t n_vars = dict_get_n_vars (dict);
 
   /* Open file handle as an exclusive writer. */
   /* TRANSLATORS: this fragment will be interpolated into
@@ -624,7 +623,7 @@ mdd_write (struct file_handle *fh, struct dictionary *dict,
 
   /* We reserve ids 1...N_VARS for variables and then start other ids after
      that. */
-  int id = dict_get_var_cnt (dict) + 1;
+  int id = dict_get_n_vars (dict) + 1;
 
   /* <definition/> */
   xmlTextWriterStartElement (w->writer, _xml ("definition"));