X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fcase.c;h=70c1b44075355d45310232203923af4867b6962b;hb=261e25786073840d341ffdd5c36a08b0b9e46504;hp=fe569de200e671721ef510a2ab78797386c27b03;hpb=3dd0f6ae0d5eb73a2270a243e443c4ae03c2c16e;p=pspp diff --git a/src/data/case.c b/src/data/case.c index fe569de200..70c1b44075 100644 --- a/src/data/case.c +++ b/src/data/case.c @@ -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(). */ @@ -497,7 +496,7 @@ copy_backward (struct ccase *dst, size_t dst_idx, { size_t i; - for (i = n_values; i-- != 0; ) + for (i = n_values; i-- != 0;) value_copy (&dst->values[dst_idx + i], &src->values[src_idx + i], caseproto_get_width (dst->proto, dst_idx + i)); }