value: Get rid of value_str(), value_str_rw(), value_num().
[pspp] / src / data / case.c
index fe569de200e671721ef510a2ab78797386c27b03..e879f6ac2559fbf84559652796d6acbae69e6705 100644 (file)
@@ -39,7 +39,7 @@
 #endif
 
 static size_t case_size (const struct caseproto *);
-static bool variable_matches_case (const struct ccase *,
+static void assert_variable_matches_case (const struct ccase *,
                                    const struct variable *);
 static void copy_forward (struct ccase *dst, size_t dst_idx,
                           const struct ccase *src, size_t src_idx,
@@ -110,7 +110,7 @@ case_get_cost (const struct caseproto *proto)
 {
   /* FIXME: improve approximation? */
   return (1 + caseproto_get_n_widths (proto)
-          + 3 * caseproto_get_n_long_strings (proto)) * sizeof (union value);
+          + 3 * caseproto_get_n_strings (proto)) * sizeof (union value);
 }
 
 /* Changes the prototype for case C, which must not be shared.
@@ -206,7 +206,7 @@ case_copy (struct ccase *dst, size_t dst_idx,
 
   if (dst != src)
     {
-      if (!dst->proto->n_long_strings || !src->proto->n_long_strings)
+      if (!dst->proto->n_strings || !src->proto->n_strings)
         memcpy (&dst->values[dst_idx], &src->values[src_idx],
                 sizeof dst->values[0] * n_values);
       else
@@ -214,7 +214,7 @@ case_copy (struct ccase *dst, size_t dst_idx,
     }
   else if (dst_idx != src_idx)
     {
-      if (!dst->proto->n_long_strings)
+      if (!dst->proto->n_strings)
         memmove (&dst->values[dst_idx], &src->values[src_idx],
                  sizeof dst->values[0] * n_values);
       else if (dst_idx < src_idx)
@@ -264,7 +264,7 @@ case_copy_in (struct ccase *c,
 const union value *
 case_data (const struct ccase *c, const struct variable *v)
 {
-  assert (variable_matches_case (c, v));
+  assert_variable_matches_case (c, v);
   return &c->values[var_get_case_index (v)];
 }
 
@@ -286,7 +286,7 @@ case_data_idx (const struct ccase *c, size_t idx)
 union value *
 case_data_rw (struct ccase *c, const struct variable *v)
 {
-  assert (variable_matches_case (c, v));
+  assert_variable_matches_case (c, v);
   assert (!case_is_shared (c));
   return &c->values[var_get_case_index (v)];
 }
@@ -310,7 +310,7 @@ case_data_rw_idx (struct ccase *c, size_t idx)
 double
 case_num (const struct ccase *c, const struct variable *v)
 {
-  assert (variable_matches_case (c, v));
+  assert_variable_matches_case (c, v);
   return c->values[var_get_case_index (v)].f;
 }
 
@@ -332,9 +332,8 @@ case_num_idx (const struct ccase *c, size_t idx)
 const uint8_t *
 case_str (const struct ccase *c, const struct variable *v)
 {
-  size_t idx = var_get_case_index (v);
-  assert (variable_matches_case (c, v));
-  return value_str (&c->values[idx], caseproto_get_width (c->proto, idx));
+  assert_variable_matches_case (c, v);
+  return c->values[var_get_case_index (v)].s;
 }
 
 /* Returns the string value of the `union value' in C numbered
@@ -346,7 +345,7 @@ const uint8_t *
 case_str_idx (const struct ccase *c, size_t idx)
 {
   assert (idx < c->proto->n_widths);
-  return value_str (&c->values[idx], caseproto_get_width (c->proto, idx));
+  return c->values[idx].s;
 }
 
 /* Returns the string value of the `union value' in C for
@@ -360,10 +359,10 @@ case_str_idx (const struct ccase *c, size_t idx)
 uint8_t *
 case_str_rw (struct ccase *c, const struct variable *v)
 {
+  assert_variable_matches_case (c, v);
   size_t idx = var_get_case_index (v);
-  assert (variable_matches_case (c, v));
   assert (!case_is_shared (c));
-  return value_str_rw (&c->values[idx], caseproto_get_width (c->proto, idx));
+  return c->values[idx].s;
 }
 
 /* Returns the string value of the `union value' in C numbered
@@ -378,7 +377,7 @@ case_str_rw_idx (struct ccase *c, size_t idx)
 {
   assert (idx < c->proto->n_widths);
   assert (!case_is_shared (c));
-  return value_str_rw (&c->values[idx], caseproto_get_width (c->proto, idx));
+  return c->values[idx].s;
 }
 
 /* Compares the values of the N_VARS variables in VP
@@ -468,12 +467,12 @@ case_size (const struct caseproto *proto)
    or write data in C.
 
    Useful in assertions. */
-static bool UNUSED
-variable_matches_case (const struct ccase *c, const struct variable *v)
+static void
+assert_variable_matches_case (const struct ccase *c, const struct variable *v)
 {
   size_t case_idx = var_get_case_index (v);
-  return (case_idx < caseproto_get_n_widths (c->proto)
-          && caseproto_get_width (c->proto, case_idx) == var_get_width (v));
+  assert (case_idx < caseproto_get_n_widths (c->proto));
+  assert (caseproto_get_width (c->proto, case_idx) == var_get_width (v));
 }
 
 /* Internal helper function for case_copy(). */