summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-11-11 21:33:53 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-11-11 21:33:53 (GMT)
commit43dc21cc3239bd5c82f9ab4483ecd5b4cdfb3f0f (patch)
treebbcc969b4e6b658d57a4d753b550cd5a7f13eb9d /src
parentdb934f20598340772f8c0256c8a8119790a1821e (diff)
Improved the way display panel binaries are tracked.
Diffstat (limited to 'src')
-rw-r--r--src/gtkext/gtkdisplaypanel.c2
-rw-r--r--src/gui/editem.c4
-rw-r--r--src/gui/editor.c2
3 files changed, 6 insertions, 2 deletions
diff --git a/src/gtkext/gtkdisplaypanel.c b/src/gtkext/gtkdisplaypanel.c
index c237924..0beeb1c 100644
--- a/src/gtkext/gtkdisplaypanel.c
+++ b/src/gtkext/gtkdisplaypanel.c
@@ -858,7 +858,7 @@ static void on_view_panel_binary_display_change(GLoadedBinary *binary, BinaryVie
GLoadedBinary *gtk_display_panel_get_binary(const GtkDisplayPanel *panel)
{
- /* TODO : ref */
+ g_objet_ref(G_OBJECT(binary));
return panel->binary;
diff --git a/src/gui/editem.c b/src/gui/editem.c
index a2d1210..5bb3045 100644
--- a/src/gui/editem.c
+++ b/src/gui/editem.c
@@ -250,7 +250,8 @@ void change_editor_items_current_binary(GObject *ref, GLoadedBinary *binary)
GEditorItem *iter; /* Boucle de parcours */
GEditorItemClass *klass; /* Classe correspondante */
- g_object_set_data(ref, "current_binary", binary);
+ g_objet_ref(G_OBJECT(binary));
+ g_object_set_data_full(ref, "current_binary", binary, g_object_unref);
editem_list_for_each(iter, _editem_list)
{
@@ -329,6 +330,7 @@ static void start_moving_to_address_in_view_panel(GtkDisplayPanel *panel, const
binary = gtk_display_panel_get_binary(panel);
g_loaded_binary_add_to_collection(binary, G_DB_ITEM(move));
+ g_objet_unref(G_OBJECT(binary));
}
diff --git a/src/gui/editor.c b/src/gui/editor.c
index 736c6f6..b1d5ab1 100644
--- a/src/gui/editor.c
+++ b/src/gui/editor.c
@@ -1217,6 +1217,8 @@ static void on_dock_item_switch(GtkDockStation *station, GtkWidget *widget, GObj
//notify_panels_of_view_change(GTK_DISPLAY_PANEL(widget), false);
+ g_objet_unref(G_OBJECT(binary));
+
}
}