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
+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
2007-09-21 Xavier Claessens <xclaesse@gmail.com>
* libempathy-gtk/empathy-contact-list-view.c: Fix ref count error for
+if HAVE_TESTS
+SUBDIRS += tests
+endif
+
DISTCHECK_CONFIGURE_FLAGS = \
--disable-scrollkeeper \
--enable-gtk-doc
DISTCHECK_CONFIGURE_FLAGS = \
--disable-scrollkeeper \
--enable-gtk-doc
AM_CONDITIONAL(HAVE_NOTHERE, test "x$have_nothere" = "xyes")
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 -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl Python Bindings
dnl -----------------------------------------------------------
python/Makefile
python/pyempathy/Makefile
python/pyempathygtk/Makefile
python/Makefile
python/pyempathy/Makefile
python/pyempathygtk/Makefile
-tp_contact_list_remove_all (EmpathyTpContactList *list)
+tp_contact_list_destroy_cb (TpConn *tp_conn,
+ EmpathyTpContactList *list)
{
EmpathyTpContactListPriv *priv = GET_PRIV (list);
GList *l;
{
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,
for (l = priv->members; l; l = l->next) {
g_signal_emit_by_name (list, "members-changed", l->data,
NULL, 0, NULL,
FALSE);
g_object_unref (l->data);
}
FALSE);
g_object_unref (l->data);
}
g_list_free (priv->members);
g_list_free (priv->pendings);
priv->members = NULL;
priv->pendings = NULL;
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);
/* Tell the world to not use us anymore */
g_signal_emit (list, signals[DESTROY], 0);
empathy_debug (DEBUG_DOMAIN, "finalize: %p", object);
tp_contact_list_disconnect (list);
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),
if (priv->mc) {
dbus_g_proxy_disconnect_signal (DBUS_G_PROXY (priv->mc),
g_hash_table_destroy (priv->contacts_groups);
g_list_foreach (priv->groups, (GFunc) g_object_unref, NULL);
g_list_free (priv->groups);
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);
}
G_OBJECT_CLASS (empathy_tp_contact_list_parent_class)->finalize (object);
}
--- /dev/null
+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
+
--- /dev/null
+#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;
+}