[evolution-data-server] e_book_backend_foreach_view: Use e_book_backend_list_views().
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] e_book_backend_foreach_view: Use e_book_backend_list_views().
- Date: Sun, 7 Oct 2012 22:41:07 +0000 (UTC)
commit b47465be0c6431ff4389ae04b2186230d99fd685
Author: Matthew Barnes <mbarnes redhat com>
Date: Sun Oct 7 11:54:06 2012 -0400
e_book_backend_foreach_view: Use e_book_backend_list_views().
Holding a locked mutex while invoking callback functions we don't
control raises the potential for deadlock.
addressbook/libedata-book/e-book-backend.c | 16 +++++++---------
1 files changed, 7 insertions(+), 9 deletions(-)
---
diff --git a/addressbook/libedata-book/e-book-backend.c b/addressbook/libedata-book/e-book-backend.c
index e2e653f..d57d795 100644
--- a/addressbook/libedata-book/e-book-backend.c
+++ b/addressbook/libedata-book/e-book-backend.c
@@ -879,21 +879,19 @@ e_book_backend_foreach_view (EBookBackend *backend,
gpointer user_data),
gpointer user_data)
{
- GList *views;
- EDataBookView *view;
- gboolean stop = FALSE;
+ GList *list, *link;
- g_return_if_fail (backend != NULL);
+ g_return_if_fail (E_IS_BOOK_BACKEND (backend));
g_return_if_fail (callback != NULL);
- g_mutex_lock (backend->priv->views_mutex);
+ list = e_book_backend_list_views (backend);
- for (views = backend->priv->views; views && !stop; views = views->next) {
- view = E_DATA_BOOK_VIEW (views->data);
- stop = !callback (view, user_data);
+ for (link = list; link != NULL; link = g_list_next (link)) {
+ if (!callback (E_DATA_BOOK_VIEW (link->data), user_data))
+ break;
}
- g_mutex_unlock (backend->priv->views_mutex);
+ g_list_free_full (list, (GDestroyNotify) g_object_unref);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]