- error = NULL;
-
- istream = g_memory_input_stream_new_from_data (buf, buflen, NULL);
- pixbuf = gdk_pixbuf_new_from_stream(istream, NULL, &error);
- g_input_stream_close(istream, NULL, &error);
+ loader = gdk_pixbuf_loader_new();
+ gdk_pixbuf_loader_write(loader, buf, buflen, NULL);
+ gdk_pixbuf_loader_close(loader, NULL);
+ pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
+ g_object_ref(pixbuf);
+ g_object_unref(loader);