psppire-data-window: Delete dataset when closing window.
[pspp] / src / ui / gui / psppire-data-window.c
index c22f7bb293acb05ec957931a8f2a693db728b86e..2149a89dbd9213da3b0bff069ed726c5a130a92e 100644 (file)
@@ -1212,6 +1212,18 @@ psppire_data_window_dispose (GObject *object)
 {
   PsppireDataWindow *dw = PSPPIRE_DATA_WINDOW (object);
 
+  if (dw->dataset)
+    {
+      struct dataset *dataset = dw->dataset;
+      struct session *session = dataset_session (dataset);
+
+      dw->dataset = NULL;
+
+      dataset_set_callbacks (dataset, NULL, NULL);
+      session_set_active_dataset (session, NULL);
+      dataset_destroy (dataset);
+    }
+
   if (dw->builder != NULL)
     {
       g_object_unref (dw->builder);