spv-file-format: Revise .spv light member documentation.
[pspp] / src / output / spv / spv.c
index 5f537edfc84da8a6e6482ce55be4bc142ad7315f..29c26c275b5bfdaa40389ddbecf0d727e58f3dd6 100644 (file)
@@ -260,11 +260,7 @@ spv_item_destroy (struct spv_item *item)
       free (item->children);
 
       pivot_table_unref (item->table);
-      if (item->table_look)
-        {
-          pivot_table_look_uninit (item->table_look);
-          free (item->table_look);
-        }
+      pivot_table_look_unref (item->table_look);
       free (item->bin_member);
       free (item->xml_member);
       free (item->subtype);
@@ -853,7 +849,7 @@ pivot_table_open_legacy (struct spv_item *item)
   return error;
 }
 
-struct pivot_table *
+const struct pivot_table *
 spv_item_get_table (const struct spv_item *item_)
 {
   struct spv_item *item = CONST_CAST (struct spv_item *, item_);
@@ -1200,7 +1196,10 @@ spv_item_set_table_look (struct spv_item *item,
      (We can't just set item->table_look because light tables ignore it and
      legacy tables sometimes override it.) */
   if (spv_item_is_table (item))
-    pivot_table_set_look (spv_item_get_table (item), look);
+    {
+      spv_item_load (item);
+      pivot_table_set_look (item->table, look);
+    }
 
   for (size_t i = 0; i < item->n_children; i++)
     spv_item_set_table_look (item->children[i], look);