pixbuf-engine: Improve ThemePixbuf clean up functions
Make theme_pixbuf_destroy() NULL-safe like g_free(), and add a clear function in the spirit of the g_clear_* family of functions. https://bugzilla.gnome.org/show_bug.cgi?id=712536
This commit is contained in:
parent
0d396abf22
commit
01dfd8bb6e
@ -492,8 +492,25 @@ theme_pixbuf_new (void)
|
|||||||
void
|
void
|
||||||
theme_pixbuf_destroy (ThemePixbuf *theme_pb)
|
theme_pixbuf_destroy (ThemePixbuf *theme_pb)
|
||||||
{
|
{
|
||||||
theme_pixbuf_set_filename (theme_pb, NULL);
|
if (G_LIKELY (theme_pb))
|
||||||
g_free (theme_pb);
|
{
|
||||||
|
theme_pixbuf_set_filename (theme_pb, NULL);
|
||||||
|
g_free (theme_pb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
theme_clear_pixbuf (ThemePixbuf **theme_pb)
|
||||||
|
{
|
||||||
|
#if GLIB_CHECK_VERSION (2, 34, 0)
|
||||||
|
g_clear_pointer (theme_pb, theme_pixbuf_destroy);
|
||||||
|
#else
|
||||||
|
if (*theme_pb)
|
||||||
|
{
|
||||||
|
theme_pixbuf_destroy (*theme_pb);
|
||||||
|
*theme_pb = NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -188,6 +188,7 @@ struct _ThemeImage
|
|||||||
|
|
||||||
G_GNUC_INTERNAL ThemePixbuf *theme_pixbuf_new (void);
|
G_GNUC_INTERNAL ThemePixbuf *theme_pixbuf_new (void);
|
||||||
G_GNUC_INTERNAL void theme_pixbuf_destroy (ThemePixbuf *theme_pb);
|
G_GNUC_INTERNAL void theme_pixbuf_destroy (ThemePixbuf *theme_pb);
|
||||||
|
G_GNUC_INTERNAL void theme_clear_pixbuf (ThemePixbuf **theme_pb);
|
||||||
G_GNUC_INTERNAL void theme_pixbuf_set_filename (ThemePixbuf *theme_pb,
|
G_GNUC_INTERNAL void theme_pixbuf_set_filename (ThemePixbuf *theme_pb,
|
||||||
const char *filename);
|
const char *filename);
|
||||||
G_GNUC_INTERNAL GdkPixbuf * theme_pixbuf_get_pixbuf (ThemePixbuf *theme_pb);
|
G_GNUC_INTERNAL GdkPixbuf * theme_pixbuf_get_pixbuf (ThemePixbuf *theme_pb);
|
||||||
|
Loading…
Reference in New Issue
Block a user