diff --git a/ChangeLog b/ChangeLog index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 98d6dcbcf..b9a8cf165 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +1999-10-15 Sebastian Wilhelmi + + * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist + is called recursivly. + Thu Oct 7 12:28:27 CDT 1999 Shawn T. Amundson * Released GLib 1.2.6 diff --git a/gdataset.c b/gdataset.c index b35c91143..5fbccbd47 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) { diff --git a/glib/gdataset.c b/glib/gdataset.c index b35c91143..5fbccbd47 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) {