[gnome-system-monitor] Fix segfault on view mode change with process properties open. https://bugzilla.gnome.org/show_bug.c
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-system-monitor] Fix segfault on view mode change with process properties open. https://bugzilla.gnome.org/show_bug.c
- Date: Fri, 17 May 2013 22:57:03 +0000 (UTC)
commit 76545e553c620d9b3437456bb4dbffa355c59816
Author: Robert Roth <robert roth off gmail com>
Date: Sat May 18 01:55:46 2013 +0300
Fix segfault on view mode change with process properties open.
https://bugzilla.gnome.org/show_bug.cgi?id=700552
src/openfiles.cpp | 5 +++--
src/procproperties.cpp | 13 ++++++-------
2 files changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/src/openfiles.cpp b/src/openfiles.cpp
index f9a6877..74f4f1f 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<ProcInfo*>(g_object_get_data (G_OBJECT (tree), "selected_info"));
+ pid_t pid = GPOINTER_TO_UINT(static_cast<pid_t*>(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 2cce374..085d0ff 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<ProcInfo*>(g_object_get_data (G_OBJECT (tree), "selected_info"));
-
- if (!info)
- return;
+ pid_t pid = GPOINTER_TO_UINT(static_cast<pid_t*>(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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]