file--it's just a waste of time and space. */
vfm_sink_info.ncases = 0;
- vfm_sink_info.nval = dict_get_value_cnt (default_dict);
- vfm_sink_info.case_size = (sizeof (struct ccase)
- + ((dict_get_value_cnt (default_dict) - 1)
- * sizeof (union value)));
+ vfm_sink_info.nval = dict_get_next_value_idx (default_dict);
+ vfm_sink_info.case_size = dict_get_case_size (default_dict);
if (vfm_sink == NULL)
{
count_values += v->nv;
}
}
- assert (temporary == 2 || count_values <= dict_get_value_cnt (temp_dict));
+ assert (temporary == 2
+ || count_values <= dict_get_next_value_idx (temp_dict));
}
/* Compaction is only necessary if the number of `value's to output
differs from the number already present. */
compaction_nval = count_values;
- compaction_necessary = (temporary == 2
- || count_values != dict_get_value_cnt (temp_dict));
+ if (temporary == 2 || count_values != dict_get_next_value_idx (temp_dict))
+ compaction_necessary = 1;
+ else
+ compaction_necessary = 0;
if (vfm_sink->init)
vfm_sink->init ();
lag_head = 0;
lag_queue = xmalloc (n_lag * sizeof *lag_queue);
for (i = 0; i < n_lag; i++)
- lag_queue[i] = xmalloc (dict_get_value_cnt (temp_dict)
- * sizeof **lag_queue);
+ lag_queue[i] = xmalloc (dict_get_case_size (temp_dict));
}
/* There is a lot of potential confusion in the vfm and related
if (lag_count < n_lag)
lag_count++;
memcpy (lag_queue[lag_head], temp_case,
- sizeof (union value) * dict_get_value_cnt (temp_dict));
+ dict_get_case_size (temp_dict));
if (++lag_head >= n_lag)
lag_head = 0;
}
assert (v->type == NUMERIC || v->type == ALPHA);
tab_text (t, 0, i + 1, TAB_LEFT | TAT_PRINTF, "%s", v->name);
- {
- union value val = c->data[v->fv];
- if (v->type == ALPHA)
- val.c = c->data[v->fv].s;
- data_out (temp_buf, &v->print, &val);
- }
+ data_out (temp_buf, &v->print, &c->data[v->fv]);
temp_buf[v->print.w] = 0;
tab_text (t, 1, i + 1, TAT_PRINTF, "%.*s", v->print.w, temp_buf);