fix signature of this function and propagate errors from
2008-01-16 Michael Natterer <mitch@imendio.com> * gdk-pixbuf-io.c (save_to_stream): fix signature of this function and propagate errors from g_output_stream_write(). Return error also on incomplete writes (which don't generate an error by themselves). Unrelated: (gdk_pixbuf_io_init): initialize "builtin_module" on a separate line to avoid compiler warning in the common case of no built-in modules. svn path=/trunk/; revision=19378
This commit is contained in:
		 Michael Natterer
					Michael Natterer
				
			
				
					committed by
					
						 Michael Natterer
						Michael Natterer
					
				
			
			
				
	
			
			
			 Michael Natterer
						Michael Natterer
					
				
			
						parent
						
							7ffe104a77
						
					
				
				
					commit
					7932cfb669
				
			| @ -1,3 +1,16 @@ | ||||
| 2008-01-16  Michael Natterer  <mitch@imendio.com> | ||||
|  | ||||
| 	* gdk-pixbuf-io.c (save_to_stream): fix signature of this function | ||||
| 	and propagate errors from g_output_stream_write(). Return error | ||||
| 	also on incomplete writes (which don't generate an error by | ||||
| 	themselves). | ||||
|  | ||||
| 	Unrelated: | ||||
|  | ||||
| 	(gdk_pixbuf_io_init): initialize "builtin_module" on a separate | ||||
| 	line to avoid compiler warning in the common case of no built-in | ||||
| 	modules. | ||||
|  | ||||
| 2008-01-16  Michael Natterer  <mitch@imendio.com> | ||||
|  | ||||
| 	* Makefile.am (LDADDS): use $GDK_PIXBUF_DEP_LIBS instead of | ||||
|  | ||||
| @ -306,7 +306,12 @@ gdk_pixbuf_io_init (void) | ||||
| 	GdkPixbufModulePattern *pattern; | ||||
| 	GError *error = NULL; | ||||
| #endif | ||||
| 	GdkPixbufModule *builtin_module = NULL; | ||||
| 	GdkPixbufModule *builtin_module ; | ||||
|  | ||||
|         /*  initialize on separate line to avoid compiler warnings in the | ||||
|          *  common case of no compiled-in modules. | ||||
|          */ | ||||
| 	builtin_module = NULL; | ||||
|  | ||||
| #define load_one_builtin_module(format)					\ | ||||
| 	builtin_module = g_new0 (GdkPixbufModule, 1);			\ | ||||
| @ -2209,16 +2214,29 @@ typedef struct { | ||||
| static gboolean | ||||
| save_to_stream (const gchar  *buffer, | ||||
| 		gsize         count, | ||||
| 		GCancellable *cancellable, | ||||
| 		GError      **error, | ||||
| 		gpointer      data) | ||||
| { | ||||
| 	SaveToStreamData *sdata = (SaveToStreamData *)data; | ||||
|         GError *my_error = NULL; | ||||
| 	gsize n; | ||||
|  | ||||
| 	g_output_stream_write (sdata->stream,  | ||||
| 			       buffer, count,  | ||||
| 			       sdata->cancellable,  | ||||
| 			       error); | ||||
| 	n = g_output_stream_write (sdata->stream,  | ||||
|                                    buffer, count,  | ||||
|                                    sdata->cancellable,  | ||||
|                                    &my_error); | ||||
| 	if (n != count) { | ||||
| 		if (!my_error) { | ||||
|                         g_set_error (error, | ||||
|                                      G_IO_ERROR, 0, | ||||
|                                      _("Error writing to image stream")); | ||||
|                 } | ||||
|                 else { | ||||
|                         g_propagate_error (error, my_error); | ||||
|                 } | ||||
|                 return FALSE; | ||||
| 	} | ||||
| 	return TRUE; | ||||
| } | ||||
|  | ||||
| /**  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user