ekiga r7344 - trunk/lib/engine/gui/gtk-frontend
- From: jpuydt svn gnome org
- To: svn-commits-list gnome org
- Subject: ekiga r7344 - trunk/lib/engine/gui/gtk-frontend
- Date: Fri, 14 Nov 2008 19:43:56 +0000 (UTC)
Author: jpuydt
Date: Fri Nov 14 19:43:56 2008
New Revision: 7344
URL: http://svn.gnome.org/viewvc/ekiga?rev=7344&view=rev
Log:
Moved disconnecting callbacks from finalize to dispose to avoid crashes
Modified:
trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
Modified: trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
==============================================================================
--- trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp (original)
+++ trunk/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp Fri Nov 14 19:43:56 2008
@@ -875,7 +875,7 @@
gpointer data)
{
cluster->visit_heaps (sigc::bind (sigc::ptr_fun (visit_heaps),
- &*cluster, data));
+ cluster, data));
}
static bool
@@ -1260,6 +1260,12 @@
view = ROSTER_VIEW_GTK (obj);
+ for (std::vector<sigc::connection>::iterator iter
+ = view->priv->connections.begin ();
+ iter != view->priv->connections.end ();
+ iter++)
+ iter->disconnect ();
+
if (view->priv->tree_view) {
g_signal_handlers_disconnect_matched (gtk_tree_view_get_selection (view->priv->tree_view),
@@ -1290,12 +1296,6 @@
view = (RosterViewGtk *)obj;
- for (std::vector<sigc::connection>::iterator iter
- = view->priv->connections.begin ();
- iter != view->priv->connections.end ();
- iter++)
- iter->disconnect ();
-
delete view->priv;
parent_class->finalize (obj);
@@ -1525,26 +1525,26 @@
/* Relay signals */
conn = core.cluster_added.connect (sigc::bind (sigc::ptr_fun (on_cluster_added),
- (gpointer) self));
+ (gpointer) self));
self->priv->connections.push_back (conn);
conn = core.heap_added.connect (sigc::bind (sigc::ptr_fun (on_heap_added),
- (gpointer) self));
+ (gpointer) self));
self->priv->connections.push_back (conn);
conn = core.heap_updated.connect (sigc::bind (sigc::ptr_fun (on_heap_updated),
- (gpointer) self));
+ (gpointer) self));
self->priv->connections.push_back (conn);
conn = core.heap_removed.connect (sigc::bind (sigc::ptr_fun (on_heap_removed),
- (gpointer) self));
+ (gpointer) self));
self->priv->connections.push_back (conn);
conn = core.presentity_added.connect (sigc::bind (sigc::ptr_fun (on_presentity_added),
- (gpointer) self));
+ (gpointer) self));
self->priv->connections.push_back (conn);
conn = core.presentity_updated.connect (sigc::bind (sigc::ptr_fun (on_presentity_updated),
- self));
+ self));
self->priv->connections.push_back (conn);
conn = core.presentity_removed.connect (sigc::bind (sigc::ptr_fun (on_presentity_removed),
- (gpointer) self));
+ (gpointer) self));
self->priv->connections.push_back (conn);
conn = core.questions.add_handler (sigc::bind (sigc::ptr_fun (on_handle_questions), (gpointer) self));
self->priv->connections.push_back (conn);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]