+ for (enum pivot_axis_type a = 0; a < PIVOT_N_AXES; a++)
+ {
+ struct ctables_axis_render *ar = &axis_renders[a];
+ if (!ar->n_vars && a != t->slabels_position)
+ continue;
+
+ struct pivot_category **groups = xnmalloc (ar->n_vars,
+ sizeof *groups);
+ for (size_t k = 0; k < ar->n_freqs; k++)
+ {
+ struct ctables_freq *prev = k > 0 ? ar->freqs[k - 1] : NULL;
+ struct ctables_freq *f = ar->freqs[k];
+
+ size_t n_common = 0;
+ if (prev)
+ for (; n_common + 1 < ar->n_vars; n_common++)
+ if (!value_equal (&prev->values[ar->ofs + n_common],
+ &f->values[ar->ofs + n_common],
+ var_get_type (ar->vars[n_common])))
+ break;
+
+ for (size_t m = n_common; m < ar->n_vars; m++)