ctables: Minor refactoring.
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 31 Jan 2022 06:10:12 +0000 (22:10 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 31 Jan 2022 06:10:22 +0000 (22:10 -0800)
src/language/stats/ctables.c

index 4a0787dd21e9f30d48f89dc12d1acc5af41face5..d6b5a0ca0c119c9764e49377d65a286466f5dcf8 100644 (file)
@@ -2649,15 +2649,9 @@ recurse_subtotals (struct ctables_table *t, const struct ccase *c,
 static void
 ctables_cell_insert (struct ctables_table *t,
                      const struct ccase *c,
-                     size_t ir, size_t ic, size_t il,
+                     size_t ix[PIVOT_N_AXES],
                      double d_weight, double e_weight)
 {
-  size_t ix[PIVOT_N_AXES] = {
-    [PIVOT_AXIS_ROW] = ir,
-    [PIVOT_AXIS_COLUMN] = ic,
-    [PIVOT_AXIS_LAYER] = il,
-  };
-
   const struct ctables_category *cats[PIVOT_N_AXES][10];
   for (enum pivot_axis_type a = 0; a < PIVOT_N_AXES; a++)
     {
@@ -2924,6 +2918,8 @@ ctables_table_output (struct ctables *ct, struct ctables_table *t)
               struct pivot_category *parent = k ? groups[k - 1] : d[a]->root;
               if (level->type == CTL_SUMMARY)
                 {
+                  assert (k == n_levels - 1);
+
                   const struct ctables_summary_spec_set *specs = &t->summary_specs;
                   for (size_t m = 0; m < specs->n; m++)
                     {
@@ -3339,7 +3335,15 @@ ctables_execute (struct dataset *ds, struct ctables *ct)
           for (size_t ir = 0; ir < t->stacks[PIVOT_AXIS_ROW].n; ir++)
             for (size_t ic = 0; ic < t->stacks[PIVOT_AXIS_COLUMN].n; ic++)
               for (size_t il = 0; il < t->stacks[PIVOT_AXIS_LAYER].n; il++)
-                ctables_cell_insert (t, c, ir, ic, il, d_weight, e_weight);
+                {
+                  size_t ix[PIVOT_N_AXES] = {
+                    [PIVOT_AXIS_ROW] = ir,
+                    [PIVOT_AXIS_COLUMN] = ic,
+                    [PIVOT_AXIS_LAYER] = il,
+                  };
+
+                  ctables_cell_insert (t, c, ix, d_weight, e_weight);
+                }
 
           for (enum pivot_axis_type a = 0; a < PIVOT_N_AXES; a++)
             if (t->label_axis[a] != a)