Mercurial > pidgin
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 |