mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 10:08:56 +01:00 
			
		
		
		
	remove g_dataset_global_lock around destroy() notification here as well.
Sun Oct 17 18:11:40 1999 Tim Janik <timj@gtk.org> * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around destroy() notification here as well. 1999-10-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de> * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
This commit is contained in:
		
				
					committed by
					
						
						Tim Janik
					
				
			
			
				
	
			
			
			
						parent
						
							9a65b20e07
						
					
				
				
					commit
					a2760140c8
				
			
							
								
								
									
										10
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
 | 
			
		||||
        destroy() notification here as well.
 | 
			
		||||
 | 
			
		||||
1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 | 
			
		||||
 | 
			
		||||
        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
 | 
			
		||||
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
 | 
			
		||||
 | 
			
		||||
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
 | 
			
		||||
 | 
			
		||||
	* glib.h: removed useless g_string(x) macro that cluttered the namespace
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								gdataset.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user