Properly tracking references for GdkPixbuf objects

This commit is contained in:
Pierre Pronchery 2012-12-06 22:03:35 +01:00
parent 2f3d0def51
commit 030059cd1b

View File

@ -193,9 +193,12 @@ void mime_delete(Mime * mime)
for(j = 0; j < mime->types[i].globs_cnt; j++) for(j = 0; j < mime->types[i].globs_cnt; j++)
free(mime->types[i].globs[j]); free(mime->types[i].globs[j]);
free(mime->types[i].globs); free(mime->types[i].globs);
free(mime->types[i].icon_24); if(mime->types[i].icon_24 != NULL)
free(mime->types[i].icon_48); g_object_unref(mime->types[i].icon_24);
free(mime->types[i].icon_96); if(mime->types[i].icon_48 != NULL)
g_object_unref(mime->types[i].icon_48);
if(mime->types[i].icon_96 != NULL)
g_object_unref(mime->types[i].icon_96);
} }
free(mime->types); free(mime->types);
if(mime->config != NULL) if(mime->config != NULL)
@ -362,6 +365,7 @@ void mime_icons(Mime * mime, char const * type, ...)
mime->types[i].icon_24 = _mime_icons_size(mime, mime->types[i].icon_24 = _mime_icons_size(mime,
type, size); type, size);
*icon = mime->types[i].icon_24; *icon = mime->types[i].icon_24;
g_object_ref(*icon);
} }
else if(size == 48) else if(size == 48)
{ {
@ -369,6 +373,7 @@ void mime_icons(Mime * mime, char const * type, ...)
mime->types[i].icon_48 = _mime_icons_size(mime, mime->types[i].icon_48 = _mime_icons_size(mime,
type, size); type, size);
*icon = mime->types[i].icon_48; *icon = mime->types[i].icon_48;
g_object_ref(*icon);
} }
else if(size == 96) else if(size == 96)
{ {
@ -376,6 +381,7 @@ void mime_icons(Mime * mime, char const * type, ...)
mime->types[i].icon_96 = _mime_icons_size(mime, mime->types[i].icon_96 = _mime_icons_size(mime,
type, size); type, size);
*icon = mime->types[i].icon_96; *icon = mime->types[i].icon_96;
g_object_ref(*icon);
} }
else else
*icon = _mime_icons_size(mime, type, size); *icon = _mime_icons_size(mime, type, size);