pivot-table: Reduce size of struct pivot_value from 80 bytes to 40.
[pspp] / src / output / table.c
index eabcc85b89f846bd26969a9e85533e924a6191a0..09ed509e35bfac726be760d9e2210db17f89144e 100644 (file)
 #include "libpspp/compiler.h"
 #include "libpspp/pool.h"
 #include "libpspp/str.h"
+#include "output/output-item.h"
 #include "output/pivot-table.h"
-#include "output/table-item.h"
 #include "output/table.h"
-#include "output/text-item.h"
 
 #include "gl/xalloc.h"
 
@@ -505,8 +504,8 @@ table_get_cell (const struct table *t, int x, int y, struct table_cell *cell)
     = t->styles[(opt & TAB_STYLE_MASK) >> TAB_STYLE_SHIFT];
 
   static const struct pivot_value empty_value = {
-    .type = PIVOT_VALUE_TEXT,
     .text = {
+      .type = PIVOT_VALUE_TEXT,
       .local = (char *) "",
       .c = (char *) "",
       .id = (char *) "",
@@ -528,12 +527,13 @@ table_get_cell (const struct table *t, int x, int y, struct table_cell *cell)
   else
     {
       const struct pivot_value *v = cc ? cc : &empty_value;
+      const struct pivot_value_ex *ex = pivot_value_ex (v);
       *cell = (struct table_cell) {
         .d = { [H] = { x, x + 1 }, [V] = { y, y + 1 } },
         .options = opt,
         .value = v,
-        .font_style = v->font_style ? v->font_style : &style->font_style,
-        .cell_style = v->cell_style ? v->cell_style : &style->cell_style,
+        .font_style = ex->font_style ? ex->font_style : &style->font_style,
+        .cell_style = ex->cell_style ? ex->cell_style : &style->cell_style,
       };
     }