Commit c6575838 authored by Xavier Claessens's avatar Xavier Claessens Committed by Xavier Claessens

Fix warnings when finalizing.

2007-09-21  Xavier Claessens  <xclaesse@gmail.com>

	* libempathy/empathy-tp-contact-list.c: Fix warnings when finalizing.

	* tests/contact-manager.c:
	* tests/Makefile.am:
	* configure.ac:
	* Makefile.am: Add a test program to track leaks.


svn path=/trunk/; revision=304
parent 004e5e33
2007-09-21 Xavier Claessens <xclaesse@gmail.com>
* libempathy/empathy-tp-contact-list.c: Fix warnings when finalizing.
* tests/contact-manager.c:
* tests/Makefile.am:
* configure.ac:
* Makefile.am: Add a test program to track leaks.
2007-09-21 Xavier Claessens <xclaesse@gmail.com>
* libempathy-gtk/empathy-contact-list-view.c: Fix ref count error for
......
......@@ -12,6 +12,10 @@ if HAVE_PYTHON
SUBDIRS += python
endif
if HAVE_TESTS
SUBDIRS += tests
endif
DISTCHECK_CONFIGURE_FLAGS = \
--disable-scrollkeeper \
--enable-gtk-doc
......
......@@ -204,6 +204,16 @@ fi
AM_CONDITIONAL(HAVE_NOTHERE, test "x$have_nothere" = "xyes")
dnl -----------------------------------------------------------
dnl Tests
dnl -----------------------------------------------------------
AC_ARG_ENABLE(tests,
AS_HELP_STRING([--enable-tests=@<:@no/yes@:>@],
[build tests]), ,
enable_tests=no)
AM_CONDITIONAL(HAVE_TESTS, test "x$enable_tests" = "xyes")
dnl -----------------------------------------------------------
dnl Python Bindings
dnl -----------------------------------------------------------
......@@ -271,4 +281,5 @@ AC_OUTPUT([
python/Makefile
python/pyempathy/Makefile
python/pyempathygtk/Makefile
tests/Makefile
])
......@@ -492,11 +492,19 @@ tp_contact_list_newchannel_cb (DBusGProxy *proxy,
}
static void
tp_contact_list_remove_all (EmpathyTpContactList *list)
tp_contact_list_destroy_cb (TpConn *tp_conn,
EmpathyTpContactList *list)
{
EmpathyTpContactListPriv *priv = GET_PRIV (list);
GList *l;
empathy_debug (DEBUG_DOMAIN, "Account disconnected or CM crashed");
/* DBus proxie should NOT be used anymore */
g_object_unref (priv->tp_conn);
priv->tp_conn = NULL;
/* Remove all contacts */
for (l = priv->members; l; l = l->next) {
g_signal_emit_by_name (list, "members-changed", l->data,
NULL, 0, NULL,
......@@ -509,26 +517,10 @@ tp_contact_list_remove_all (EmpathyTpContactList *list)
FALSE);
g_object_unref (l->data);
}
g_list_free (priv->members);
g_list_free (priv->pendings);
priv->members = NULL;
priv->pendings = NULL;
}
static void
tp_contact_list_destroy_cb (TpConn *tp_conn,
EmpathyTpContactList *list)
{
EmpathyTpContactListPriv *priv = GET_PRIV (list);
empathy_debug (DEBUG_DOMAIN, "Account disconnected or CM crashed");
/* DBus proxie should NOT be used anymore */
g_object_unref (priv->tp_conn);
priv->tp_conn = NULL;
tp_contact_list_remove_all (list);
/* Tell the world to not use us anymore */
g_signal_emit (list, signals[DESTROY], 0);
......@@ -591,7 +583,6 @@ tp_contact_list_finalize (GObject *object)
empathy_debug (DEBUG_DOMAIN, "finalize: %p", object);
tp_contact_list_disconnect (list);
tp_contact_list_remove_all (list);
if (priv->mc) {
dbus_g_proxy_disconnect_signal (DBUS_G_PROXY (priv->mc),
......@@ -617,6 +608,10 @@ tp_contact_list_finalize (GObject *object)
g_hash_table_destroy (priv->contacts_groups);
g_list_foreach (priv->groups, (GFunc) g_object_unref, NULL);
g_list_free (priv->groups);
g_list_foreach (priv->members, (GFunc) g_object_unref, NULL);
g_list_free (priv->members);
g_list_foreach (priv->pendings, (GFunc) g_object_unref, NULL);
g_list_free (priv->pendings);
G_OBJECT_CLASS (empathy_tp_contact_list_parent_class)->finalize (object);
}
......
AM_CPPFLAGS = \
-I$(top_srcdir) \
$(EMPATHY_CFLAGS) \
$(WARN_CFLAGS)
LDADD = \
$(top_builddir)/libempathy-gtk/libempathy-gtk.la \
$(top_builddir)/libempathy/libempathy.la \
$(EMPATHY_LIBS)
noinst_PROGRAMS = \
contact-manager
contact_manager_SOURCES = contact-manager.c
#include <stdlib.h>
#include <gtk/gtk.h>
#include <libempathy/empathy-contact-manager.h>
static gboolean
time_out (gpointer data)
{
gtk_main_quit ();
return FALSE;
}
int
main (int argc, char **argv)
{
EmpathyContactManager *manager;
gtk_init (&argc, &argv);
manager = empathy_contact_manager_new ();
g_timeout_add (5000, time_out, NULL);
gtk_main ();
g_object_unref (manager);
return EXIT_SUCCESS;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment