{
PsppireDataWindow *dw = PSPPIRE_DATA_WINDOW (object);
+ if (dw->uim)
+ {
+ psppire_data_window_remove_ui (dw, dw->uim, dw->merge_id);
+ g_object_unref (dw->uim);
+ dw->uim = NULL;
+ }
+
if (dw->builder != NULL)
{
g_object_unref (dw->builder);
gtk_window_remove_accel_group (GTK_WINDOW (pdw),
gtk_ui_manager_get_accel_group (uim));
-
- /* Our caller unrefs 'uim', possibly causing 'uim' to be freed. The
- following call appears to be necessary to ensure that pdw->ui_manager
- drops all references to 'uim'. Otherwise, I get valgrind complaints about
- access to freed memory (and segfaults) on e.g. Windows|Split View. */
- gtk_ui_manager_ensure_update (pdw->ui_manager);
}
GtkWidget*
if (ds == NULL)
{
- static int n_datasets;
- char *dataset_name;
-
- dataset_name = xasprintf ("DataSet%d", ++n_datasets);
+ char *dataset_name = session_generate_dataset_name (the_session);
ds = dataset_create (the_session, dataset_name);
free (dataset_name);
}