It really seems the double unref code was dubious. I don't know if it is in reality causing issues... but it seems it is at least iffy.
This changes version of the patch changes thins around so G_IS_OBJECT is not use... #gtk comments seems to indicate this might not be valid if the refcount on the "object" is already 0...
it also makes sure that ->icon and org_icon are different pixbufs (they may be identical but they are in that case still copies). It just seems safer.
Now I'm inclined to think that a pixbuf copy or two can be optimized out of this... but if anyone tries it please, please make sure the reference count in such we're not working on a pointer that is pointing to memory location that's already been unreferenced to 0.
It really seems the double unref code was dubious. I don't know if it is in reality causing issues... but it seems it is at least iffy.
This changes version of the patch changes thins around so G_IS_OBJECT is not use... #gtk comments seems to indicate this might not be valid if the refcount on the "object" is already 0...
it also makes sure that ->icon and org_icon are different pixbufs (they may be identical but they are in that case still copies). It just seems safer.
Now I'm inclined to think that a pixbuf copy or two can be optimized out of this... but if anyone tries it please, please make sure the reference count in such we're not working on a pointer that is pointing to memory location that's already been unreferenced to 0.
Patch to follow.