diff --git a/ChangeLog b/ChangeLog index 5502212a4..d8eca43ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 5502212a4..d8eca43ad 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 5502212a4..d8eca43ad 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 5502212a4..d8eca43ad 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 5502212a4..d8eca43ad 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 5502212a4..d8eca43ad 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 5502212a4..d8eca43ad 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 5502212a4..d8eca43ad 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,13 @@ +Sun Oct 17 18:11:40 1999 Tim Janik + + * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around + destroy() notification here as well. + +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. Reported by Ola Andersson . + Tue Oct 12 14:17:12 1999 Tim Janik * glib.h: removed useless g_string(x) macro that cluttered the namespace diff --git a/gdataset.c b/gdataset.c index b35c91143..2aa4032ab 100644 --- a/gdataset.c +++ b/gdataset.c @@ -110,7 +110,11 @@ g_datalist_clear_i (GData **datalist) list = prev->next; if (prev->destroy_func) - prev->destroy_func (prev->data); + { + G_UNLOCK (g_dataset_global); + prev->destroy_func (prev->data); + G_LOCK (g_dataset_global); + } if (g_data_cache_length < G_DATA_CACHE_MAX) { @@ -233,7 +237,11 @@ g_data_set_internal (GData **datalist, * data without destroy notification */ if (list->destroy_func && !destroy_func) - list->destroy_func (list->data); + { + G_UNLOCK (g_dataset_global); + list->destroy_func (list->data); + G_LOCK (g_dataset_global); + } if (g_data_cache_length < G_DATA_CACHE_MAX) { @@ -275,7 +283,9 @@ g_data_set_internal (GData **datalist, /* we need to have updated all structures prior to * invokation of the destroy function */ + G_UNLOCK (g_dataset_global); dfunc (ddata); + G_LOCK (g_dataset_global); } return; diff --git a/glib/gdataset.c b/glib/gdataset.c index b35c91143..2aa4032ab 100644 --- a/glib/gdataset.c +++ b/glib/gdataset.c @@ -110,7 +110,11 @@ g_datalist_clear_i (GData **datalist) list = prev->next; if (prev->destroy_func) - prev->destroy_func (prev->data); + { + G_UNLOCK (g_dataset_global); + prev->destroy_func (prev->data); + G_LOCK (g_dataset_global); + } if (g_data_cache_length < G_DATA_CACHE_MAX) { @@ -233,7 +237,11 @@ g_data_set_internal (GData **datalist, * data without destroy notification */ if (list->destroy_func && !destroy_func) - list->destroy_func (list->data); + { + G_UNLOCK (g_dataset_global); + list->destroy_func (list->data); + G_LOCK (g_dataset_global); + } if (g_data_cache_length < G_DATA_CACHE_MAX) { @@ -275,7 +283,9 @@ g_data_set_internal (GData **datalist, /* we need to have updated all structures prior to * invokation of the destroy function */ + G_UNLOCK (g_dataset_global); dfunc (ddata); + G_LOCK (g_dataset_global); } return;