From d0ee63840cd8c7760614810822370aee0382683f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 20 Mar 2006 18:43:32 +0000 Subject: [PATCH] use standard_calloc to allocate the profile_data. (#335209, Chris Wilson) 2006-03-20 Matthias Clasen * glib/gmem.c (profiler_log): use standard_calloc to allocate the profile_data. (#335209, Chris Wilson) * glib/gmain.c (g_main_context_unref): Avoid a deadlock. (#335207, Chris Wilson) Minor optimizations (#335216, Chris Wilson): * glib/gasyncqueue.c (g_async_queue_pop_intern_unlocked): Use g_queue_peek_tail_link instead of g_queue_peek_tail. * glib/glist.c: * glib/gslist.c: Avoid some memset calls. --- ChangeLog | 16 +++++++++++++++ ChangeLog.pre-2-10 | 16 +++++++++++++++ ChangeLog.pre-2-12 | 16 +++++++++++++++ glib/gasyncqueue.c | 15 +++++++------- glib/glist.c | 51 ++++++++++++++++++++++++---------------------- glib/gmain.c | 2 +- glib/gmem.c | 2 +- glib/gslist.c | 33 +++++++++++++++++++----------- 8 files changed, 106 insertions(+), 45 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7eb7b1280..6d8115211 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2006-03-20 Matthias Clasen + + * glib/gmem.c (profiler_log): use standard_calloc to allocate + the profile_data. (#335209, Chris Wilson) + + * glib/gmain.c (g_main_context_unref): Avoid a deadlock. + (#335207, Chris Wilson) + + Minor optimizations (#335216, Chris Wilson): + + * glib/gasyncqueue.c (g_async_queue_pop_intern_unlocked): Use + g_queue_peek_tail_link instead of g_queue_peek_tail. + + * glib/glist.c: + * glib/gslist.c: Avoid some memset calls. + 2006-03-19 Matthias Clasen * MAINTAINERS: Add this, at the request of the GNOME sysadmin team. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 7eb7b1280..6d8115211 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,19 @@ +2006-03-20 Matthias Clasen + + * glib/gmem.c (profiler_log): use standard_calloc to allocate + the profile_data. (#335209, Chris Wilson) + + * glib/gmain.c (g_main_context_unref): Avoid a deadlock. + (#335207, Chris Wilson) + + Minor optimizations (#335216, Chris Wilson): + + * glib/gasyncqueue.c (g_async_queue_pop_intern_unlocked): Use + g_queue_peek_tail_link instead of g_queue_peek_tail. + + * glib/glist.c: + * glib/gslist.c: Avoid some memset calls. + 2006-03-19 Matthias Clasen * MAINTAINERS: Add this, at the request of the GNOME sysadmin team. diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 7eb7b1280..6d8115211 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,19 @@ +2006-03-20 Matthias Clasen + + * glib/gmem.c (profiler_log): use standard_calloc to allocate + the profile_data. (#335209, Chris Wilson) + + * glib/gmain.c (g_main_context_unref): Avoid a deadlock. + (#335207, Chris Wilson) + + Minor optimizations (#335216, Chris Wilson): + + * glib/gasyncqueue.c (g_async_queue_pop_intern_unlocked): Use + g_queue_peek_tail_link instead of g_queue_peek_tail. + + * glib/glist.c: + * glib/gslist.c: Avoid some memset calls. + 2006-03-19 Matthias Clasen * MAINTAINERS: Add this, at the request of the GNOME sysadmin team. diff --git a/glib/gasyncqueue.c b/glib/gasyncqueue.c index e025b50c4..8d6f3f295 100644 --- a/glib/gasyncqueue.c +++ b/glib/gasyncqueue.c @@ -313,12 +313,13 @@ g_async_queue_push_sorted_unlocked (GAsyncQueue *queue, } static gpointer -g_async_queue_pop_intern_unlocked (GAsyncQueue* queue, gboolean try, - GTimeVal *end_time) +g_async_queue_pop_intern_unlocked (GAsyncQueue *queue, + gboolean try, + GTimeVal *end_time) { gpointer retval; - if (!g_queue_peek_tail (queue->queue)) + if (!g_queue_peek_tail_link (queue->queue)) { if (try) return NULL; @@ -329,18 +330,18 @@ g_async_queue_pop_intern_unlocked (GAsyncQueue* queue, gboolean try, if (!end_time) { queue->waiting_threads++; - while (!g_queue_peek_tail (queue->queue)) - g_cond_wait(queue->cond, queue->mutex); + while (!g_queue_peek_tail_link (queue->queue)) + g_cond_wait (queue->cond, queue->mutex); queue->waiting_threads--; } else { queue->waiting_threads++; - while (!g_queue_peek_tail (queue->queue)) + while (!g_queue_peek_tail_link (queue->queue)) if (!g_cond_timed_wait (queue->cond, queue->mutex, end_time)) break; queue->waiting_threads--; - if (!g_queue_peek_tail (queue->queue)) + if (!g_queue_peek_tail_link (queue->queue)) return NULL; } } diff --git a/glib/glist.c b/glib/glist.c index 12ebd0b39..40f1dd605 100644 --- a/glib/glist.c +++ b/glib/glist.c @@ -37,6 +37,7 @@ void g_list_push_allocator (gpointer dummy) { /* present for binary compat only */ } void g_list_pop_allocator (void) { /* present for binary compat only */ } +#define _g_list_alloc() g_slice_new (GList) #define _g_list_alloc0() g_slice_new0 (GList) #define _g_list_free1(list) g_slice_free (GList, list) @@ -65,8 +66,9 @@ g_list_append (GList *list, GList *new_list; GList *last; - new_list = _g_list_alloc0 (); + new_list = _g_list_alloc (); new_list->data = data; + new_list->next = NULL; if (list) { @@ -78,7 +80,10 @@ g_list_append (GList *list, return list; } else - return new_list; + { + new_list->prev = NULL; + return new_list; + } } GList* @@ -87,19 +92,19 @@ g_list_prepend (GList *list, { GList *new_list; - new_list = _g_list_alloc0 (); + new_list = _g_list_alloc (); new_list->data = data; + new_list->next = list; if (list) { + new_list->prev = list->prev; if (list->prev) - { - list->prev->next = new_list; - new_list->prev = list->prev; - } + list->prev->next = new_list; list->prev = new_list; - new_list->next = list; } + else + new_list->prev = NULL; return new_list; } @@ -121,14 +126,11 @@ g_list_insert (GList *list, if (!tmp_list) return g_list_append (list, data); - new_list = _g_list_alloc0 (); + new_list = _g_list_alloc (); new_list->data = data; - + new_list->prev = tmp_list->prev; if (tmp_list->prev) - { - tmp_list->prev->next = new_list; - new_list->prev = tmp_list->prev; - } + tmp_list->prev->next = new_list; new_list->next = tmp_list; tmp_list->prev = new_list; @@ -154,20 +156,18 @@ g_list_insert_before (GList *list, { GList *node; - node = g_list_alloc (); + node = _g_list_alloc (); node->data = data; - if (sibling->prev) + node->prev = sibling->prev; + node->next = sibling; + sibling->prev = node; + if (node->prev) { - node->prev = sibling->prev; node->prev->next = node; - node->next = sibling; - sibling->prev = node; return list; } else { - node->next = sibling; - sibling->prev = node; g_return_val_if_fail (sibling == list, node); return node; } @@ -180,9 +180,10 @@ g_list_insert_before (GList *list, while (last->next) last = last->next; - last->next = g_list_alloc (); + last->next = _g_list_alloc (); last->next->data = data; last->next->prev = last; + last->next->next = NULL; return list; } @@ -310,18 +311,20 @@ g_list_copy (GList *list) { GList *last; - new_list = _g_list_alloc0 (); + new_list = _g_list_alloc (); new_list->data = list->data; + new_list->prev = NULL; last = new_list; list = list->next; while (list) { - last->next = _g_list_alloc0 (); + last->next = _g_list_alloc (); last->next->prev = last; last = last->next; last->data = list->data; list = list->next; } + last->next = NULL; } return new_list; diff --git a/glib/gmain.c b/glib/gmain.c index 251d2706c..3fe0c1a8f 100644 --- a/glib/gmain.c +++ b/glib/gmain.c @@ -627,7 +627,7 @@ g_main_context_unref (GMainContext *context) while (source) { GSource *next = source->next; - g_source_destroy_internal (source, context, TRUE); + g_source_destroy_internal (source, context, FALSE); source = next; } diff --git a/glib/gmem.c b/glib/gmem.c index 002ddd8f5..e47a01147 100644 --- a/glib/gmem.c +++ b/glib/gmem.c @@ -318,7 +318,7 @@ profiler_log (ProfilerJob job, g_mutex_lock (gmem_profile_mutex); if (!profile_data) { - profile_data = standard_malloc ((MEM_PROFILE_TABLE_SIZE + 1) * 8 * sizeof (profile_data[0])); + profile_data = standard_calloc ((MEM_PROFILE_TABLE_SIZE + 1) * 8 * sizeof (profile_data[0])); if (!profile_data) /* memory system kiddin' me, eh? */ { g_mutex_unlock (gmem_profile_mutex); diff --git a/glib/gslist.c b/glib/gslist.c index 05525645f..6fa196bb7 100644 --- a/glib/gslist.c +++ b/glib/gslist.c @@ -38,6 +38,7 @@ void g_slist_push_allocator (gpointer dummy) { /* present for binary compat only void g_slist_pop_allocator (void) { /* present for binary compat only */ } #define _g_slist_alloc0() g_slice_new0 (GSList) +#define _g_slist_alloc() g_slice_new (GSList) #define _g_slist_free1(slist) g_slice_free (GSList, slist) GSList* @@ -65,8 +66,9 @@ g_slist_append (GSList *list, GSList *new_list; GSList *last; - new_list = _g_slist_alloc0 (); + new_list = _g_slist_alloc (); new_list->data = data; + new_list->next = NULL; if (list) { @@ -77,7 +79,7 @@ g_slist_append (GSList *list, return list; } else - return new_list; + return new_list; } GSList* @@ -86,7 +88,7 @@ g_slist_prepend (GSList *list, { GSList *new_list; - new_list = _g_slist_alloc0 (); + new_list = _g_slist_alloc (); new_list->data = data; new_list->next = list; @@ -107,11 +109,14 @@ g_slist_insert (GSList *list, else if (position == 0) return g_slist_prepend (list, data); - new_list = _g_slist_alloc0 (); + new_list = _g_slist_alloc (); new_list->data = data; if (!list) - return new_list; + { + new_list->next = NULL; + return new_list; + } prev_list = NULL; tmp_list = list; @@ -143,8 +148,9 @@ g_slist_insert_before (GSList *slist, { if (!slist) { - slist = g_slist_alloc (); + slist = _g_slist_alloc (); slist->data = data; + slist->next = NULL; g_return_val_if_fail (sibling == NULL, slist); return slist; } @@ -157,7 +163,7 @@ g_slist_insert_before (GSList *slist, break; if (!last) { - node = g_slist_alloc (); + node = _g_slist_alloc (); node->data = data; node->next = slist; @@ -165,7 +171,7 @@ g_slist_insert_before (GSList *slist, } else { - node = g_slist_alloc (); + node = _g_slist_alloc (); node->data = data; node->next = last->next; last->next = node; @@ -302,17 +308,18 @@ g_slist_copy (GSList *list) { GSList *last; - new_list = _g_slist_alloc0 (); + new_list = _g_slist_alloc (); new_list->data = list->data; last = new_list; list = list->next; while (list) { - last->next = _g_slist_alloc0 (); + last->next = _g_slist_alloc (); last = last->next; last->data = list->data; list = list->next; } + last->next = NULL; } return new_list; @@ -478,8 +485,9 @@ g_slist_insert_sorted_real (GSList *list, if (!list) { - new_list = _g_slist_alloc0 (); + new_list = _g_slist_alloc (); new_list->data = data; + new_list->next = NULL; return new_list; } @@ -493,12 +501,13 @@ g_slist_insert_sorted_real (GSList *list, cmp = ((GCompareDataFunc) func) (data, tmp_list->data, user_data); } - new_list = _g_slist_alloc0 (); + new_list = _g_slist_alloc (); new_list->data = data; if ((!tmp_list->next) && (cmp > 0)) { tmp_list->next = new_list; + new_list->next = NULL; return list; }