pixbuf-engine: Improve ThemePixbuf clean up functions
Make theme_pixbuf_destroy() NULL-safe like g_free(), and add a clear function in the spirit of the g_clear_* family of functions. https://bugzilla.gnome.org/show_bug.cgi?id=712536
This commit is contained in:
		 Emmanuele Bassi
					Emmanuele Bassi
				
			
				
					committed by
					
						 Matthias Clasen
						Matthias Clasen
					
				
			
			
				
	
			
			
			 Matthias Clasen
						Matthias Clasen
					
				
			
						parent
						
							0d396abf22
						
					
				
				
					commit
					01dfd8bb6e
				
			| @ -492,8 +492,25 @@ theme_pixbuf_new (void) | ||||
| void | ||||
| theme_pixbuf_destroy (ThemePixbuf *theme_pb) | ||||
| { | ||||
|   theme_pixbuf_set_filename (theme_pb, NULL); | ||||
|   g_free (theme_pb); | ||||
|   if (G_LIKELY (theme_pb)) | ||||
|     { | ||||
|       theme_pixbuf_set_filename (theme_pb, NULL); | ||||
|       g_free (theme_pb); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void | ||||
| theme_clear_pixbuf (ThemePixbuf **theme_pb) | ||||
| { | ||||
| #if GLIB_CHECK_VERSION (2, 34, 0) | ||||
|   g_clear_pointer (theme_pb, theme_pixbuf_destroy); | ||||
| #else | ||||
|   if (*theme_pb) | ||||
|     { | ||||
|       theme_pixbuf_destroy (*theme_pb); | ||||
|       *theme_pb = NULL; | ||||
|     } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void          | ||||
|  | ||||
| @ -188,6 +188,7 @@ struct _ThemeImage | ||||
|  | ||||
| G_GNUC_INTERNAL ThemePixbuf *theme_pixbuf_new          (void); | ||||
| G_GNUC_INTERNAL void         theme_pixbuf_destroy      (ThemePixbuf  *theme_pb); | ||||
| G_GNUC_INTERNAL void         theme_clear_pixbuf        (ThemePixbuf **theme_pb); | ||||
| G_GNUC_INTERNAL void         theme_pixbuf_set_filename (ThemePixbuf  *theme_pb, | ||||
| 					const char   *filename); | ||||
| G_GNUC_INTERNAL GdkPixbuf *  theme_pixbuf_get_pixbuf   (ThemePixbuf  *theme_pb); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user