gtk+ r19380 - trunk/gdk-pixbuf
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r19380 - trunk/gdk-pixbuf
- Date: Wed, 16 Jan 2008 17:38:13 +0000 (GMT)
Author: matthiasc
Date: Wed Jan 16 17:38:13 2008
New Revision: 19380
URL: http://svn.gnome.org/viewvc/gtk+?rev=19380&view=rev
Log:
2008-01-15 Matthias Clasen <mclasne redhat com>
* gdk-pixbuf-io.c (save_to_stream): Handle partial writes.
Modified:
trunk/gdk-pixbuf/ChangeLog
trunk/gdk-pixbuf/gdk-pixbuf-io.c
Modified: trunk/gdk-pixbuf/gdk-pixbuf-io.c
==============================================================================
--- trunk/gdk-pixbuf/gdk-pixbuf-io.c (original)
+++ trunk/gdk-pixbuf/gdk-pixbuf-io.c Wed Jan 16 17:38:13 2008
@@ -2218,24 +2218,32 @@
gpointer data)
{
SaveToStreamData *sdata = (SaveToStreamData *)data;
+ gsize remaining;
+ gssize written;
GError *my_error = NULL;
- gsize n;
- 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;
+ remaining = count;
+ written = 0;
+ while (remaining > 0) {
+ buffer += written;
+ remaining -= written;
+ written = g_output_stream_write (sdata->stream,
+ buffer, remaining,
+ sdata->cancellable,
+ &my_error);
+ if (written < 0) {
+ 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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]