comparison src/gtkimhtml.c @ 12230:423323aa0dbe

[gaim-migrate @ 14532] SF Patch #1366591 from Sadrul "This patch is a fix for bug #1336974. This patch is necessary when the image in the imgstore has a very small size (~250 bytes). The gdk_pixbuf_loader_write doesn't immediately parse the data if the data-size is really small. So closing it before trying to _loader_get_pixbuf makes sure all the data gets parsed and the correct pixbuf gets returned." I was skeptical when I saw the diff, but it turns out this is documented behavior. If I look at it from the point of view of a GdkPixbufLoader writer, it makes sense. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sat, 26 Nov 2005 17:17:48 +0000
parents 18f0dadb29cf
children 868220a1a1b2
comparison
equal deleted inserted replaced
12229:18f0dadb29cf 12230:423323aa0dbe
4436 len = imhtml->funcs->image_get_size(image); 4436 len = imhtml->funcs->image_get_size(image);
4437 4437
4438 if (data && len) { 4438 if (data && len) {
4439 GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); 4439 GdkPixbufLoader *loader = gdk_pixbuf_loader_new();
4440 gdk_pixbuf_loader_write(loader, data, len, NULL); 4440 gdk_pixbuf_loader_write(loader, data, len, NULL);
4441 gdk_pixbuf_loader_close(loader, NULL);
4441 pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); 4442 pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
4442 if (pixbuf) 4443 if (pixbuf)
4443 g_object_ref(G_OBJECT(pixbuf)); 4444 g_object_ref(G_OBJECT(pixbuf));
4444 gdk_pixbuf_loader_close(loader, NULL);
4445 g_object_unref(G_OBJECT(loader)); 4445 g_object_unref(G_OBJECT(loader));
4446 } 4446 }
4447 4447
4448 } 4448 }
4449 4449