dict_unref (ds->dict);
ds->dict = ds->permanent_dict;
ds->permanent_dict = NULL;
+ ds->temporary = false;
dataset_transformations_changed__ (ds, ds->permanent_trns_chain.n != 0);
return true;
{
bool ok;
assert (ds->proc_state == PROC_COMMITTED);
+ proc_cancel_temporary_transformations (ds);
ok = trns_chain_clear (&ds->permanent_trns_chain);
ok = trns_chain_clear (&ds->temporary_trns_chain) && ok;
- ds->temporary = false;
for (size_t i = 0; i < ds->n_stack; i++)
ok = trns_chain_uninit (&ds->stack[i]) && ok;
ds->n_stack = 0;
9.00
])
AT_CLEANUP
+
+dnl Tests for regression against a crash on this input (based on
+dnl that generated by a fuzzer).
+AT_SETUP([TEMPORARY crash])
+AT_DATA([temporary.sps], [dnl
+DATA LIST LIST NOTABLE /a b c d e f.
+TEMPORARY.
+DATA LIST LIST NOTABLE /a b c d e.
+BEGIN DATA.
+1 2 3 4 5
+END DATA.
+LIST.
+])
+AT_CHECK([pspp -o pspp.csv temporary.sps])
+AT_CHECK([cat pspp.csv], [0], [dnl
+Table: Data List
+a,b,c,d,e
+1.00,2.00,3.00,4.00,5.00
+])
+AT_CLEANUP