| 135 if (!gdk_pixbuf_loader_write(loader, buf, count, &error) || error) { |
135 if (!gdk_pixbuf_loader_write(loader, buf, count, &error) || error) { |
| 136 purple_debug_warning("gtkutils", "gdk_pixbuf_loader_write() " |
136 purple_debug_warning("gtkutils", "gdk_pixbuf_loader_write() " |
| 137 "failed with size=%" G_GSIZE_FORMAT ": %s\n", count, |
137 "failed with size=%" G_GSIZE_FORMAT ": %s\n", count, |
| 138 error ? error->message : "(no error message)"); |
138 error ? error->message : "(no error message)"); |
| 139 g_clear_error(&error); |
139 g_clear_error(&error); |
| 140 g_object_unref(G_OBJECT(loader)); |
140 g_object_unref(loader); |
| 141 return NULL; |
141 return NULL; |
| 142 } |
142 } |
| 143 |
143 |
| 144 if (!gdk_pixbuf_loader_close(loader, &error) || error) { |
144 if (!gdk_pixbuf_loader_close(loader, &error) || error) { |
| 145 purple_debug_warning("gtkutils", "gdk_pixbuf_loader_close() " |
145 purple_debug_warning("gtkutils", "gdk_pixbuf_loader_close() " |
| 146 "failed for image of size %" G_GSIZE_FORMAT ": %s\n", count, |
146 "failed for image of size %" G_GSIZE_FORMAT ": %s\n", count, |
| 147 error ? error->message : "(no error message)"); |
147 error ? error->message : "(no error message)"); |
| 148 g_clear_error(&error); |
148 g_clear_error(&error); |
| 149 g_object_unref(G_OBJECT(loader)); |
149 g_object_unref(loader); |
| 150 return NULL; |
150 return NULL; |
| 151 } |
151 } |
| 152 |
152 |
| 153 if (animated) |
153 if (animated) |
| 154 pixbuf = G_OBJECT(gdk_pixbuf_loader_get_animation(loader)); |
154 pixbuf = G_OBJECT(gdk_pixbuf_loader_get_animation(loader)); |
| 157 if (!pixbuf) { |
157 if (!pixbuf) { |
| 158 purple_debug_warning("gtkutils", "%s() returned NULL for image " |
158 purple_debug_warning("gtkutils", "%s() returned NULL for image " |
| 159 "of size %" G_GSIZE_FORMAT "\n", |
159 "of size %" G_GSIZE_FORMAT "\n", |
| 160 animated ? "gdk_pixbuf_loader_get_animation" |
160 animated ? "gdk_pixbuf_loader_get_animation" |
| 161 : "gdk_pixbuf_loader_get_pixbuf", count); |
161 : "gdk_pixbuf_loader_get_pixbuf", count); |
| 162 g_object_unref(G_OBJECT(loader)); |
162 g_object_unref(loader); |
| 163 return NULL; |
163 return NULL; |
| 164 } |
164 } |
| 165 |
165 |
| 166 g_object_ref(pixbuf); |
166 g_object_ref(pixbuf); |
| 167 g_object_unref(G_OBJECT(loader)); |
167 g_object_unref(loader); |
| 168 |
168 |
| 169 return pixbuf; |
169 return pixbuf; |
| 170 } |
170 } |
| 171 |
171 |
| 172 GdkPixbuf *purple_gdk_pixbuf_from_data(const guchar *buf, gsize count) |
172 GdkPixbuf *purple_gdk_pixbuf_from_data(const guchar *buf, gsize count) |