diff --git a/src/openfiles.cpp b/src/openfiles.cpp index f9a6877decb183fb1a4c62fd721a0fd5f3886b31..74f4f1f2a00d20d4183d4a92e2851719beae747f 100644 --- a/src/openfiles.cpp +++ b/src/openfiles.cpp @@ -174,7 +174,8 @@ update_openfiles_dialog (GtkWidget *tree) GHashTable *new_maps; guint i; - info = static_cast(g_object_get_data (G_OBJECT (tree), "selected_info")); + pid_t pid = GPOINTER_TO_UINT(static_cast(g_object_get_data (G_OBJECT (tree), "selected_info"))); + info = ProcInfo::find(pid); if (!info) return; @@ -353,7 +354,7 @@ create_single_openfiles_dialog (GtkTreeModel *model, GtkTreePath *path, tree = create_openfiles_tree (app); gtk_container_add (GTK_CONTAINER (scrolled), tree); - g_object_set_data (G_OBJECT (tree), "selected_info", info); + g_object_set_data (G_OBJECT (tree), "selected_info", GUINT_TO_POINTER (info->pid)); g_object_set_data (G_OBJECT (tree), "settings", app->settings); g_signal_connect (G_OBJECT (openfilesdialog), "response", diff --git a/src/procproperties.cpp b/src/procproperties.cpp index 2cce374fa3c1eaa1c20d1d7c2938aa532e938c34..085d0ff0d70f192e3f66ccd40645794453ff4e53 100644 --- a/src/procproperties.cpp +++ b/src/procproperties.cpp @@ -111,8 +111,9 @@ fill_proc_properties (GtkWidget *tree, ProcInfo *info) { guint i; GtkListStore *store; - - get_process_memory_info(info); + + if (!info) + return; #if defined (__OpenBSD__) struct clockinfo cinf; @@ -167,10 +168,8 @@ update_procproperties_dialog (GtkWidget *tree) { ProcInfo *info; - info = static_cast(g_object_get_data (G_OBJECT (tree), "selected_info")); - - if (!info) - return; + pid_t pid = GPOINTER_TO_UINT(static_cast(g_object_get_data (G_OBJECT (tree), "selected_info"))); + info = ProcInfo::find(pid); fill_proc_properties(tree, info); } @@ -291,7 +290,7 @@ create_single_procproperties_dialog (GtkTreeModel *model, GtkTreePath *path, tree = create_procproperties_tree (app); gtk_container_add (GTK_CONTAINER (scrolled), tree); - g_object_set_data (G_OBJECT (tree), "selected_info", info); + g_object_set_data (G_OBJECT (tree), "selected_info", GUINT_TO_POINTER (info->pid)); gtk_box_pack_start (GTK_BOX (dialog_vbox), scrolled, TRUE, TRUE, 0); gtk_widget_show_all (scrolled);