diff --git a/src/platform/GLibTypeDeleter.h b/src/platform/GLibTypeDeleter.h index 565403566f60a8..93ff40f61c111d 100644 --- a/src/platform/GLibTypeDeleter.h +++ b/src/platform/GLibTypeDeleter.h @@ -60,6 +60,16 @@ struct GErrorDeleter void operator()(GError * object) { g_error_free(object); } }; +struct GIOChannelDeleter +{ + void operator()(GIOChannel * object) { g_io_channel_unref(object); } +}; + +struct GSourceDeleter +{ + void operator()(GSource * object) { g_source_unref(object); } +}; + struct GVariantDeleter { void operator()(GVariant * object) { g_variant_unref(object); } @@ -110,10 +120,16 @@ struct GAutoPtrDeleter using deleter = GErrorDeleter; }; +template <> +struct GAutoPtrDeleter +{ + using deleter = GIOChannelDeleter; +}; + template <> struct GAutoPtrDeleter { - using deleter = GObjectDeleter; + using deleter = GSourceDeleter; }; template <>