Merge branch 'issue-1104-avoid-crash' into 'main'

Add vfunc checks in gappinfo.c

See merge request GNOME/glib!2365
This commit is contained in:
Philip Withnall 2021-11-24 15:02:52 +00:00
commit 462b6c2728
2 changed files with 22 additions and 3 deletions

View File

@ -326,7 +326,12 @@ g_app_info_set_as_default_for_type (GAppInfo *appinfo,
iface = G_APP_INFO_GET_IFACE (appinfo);
return (* iface->set_as_default_for_type) (appinfo, content_type, error);
if (iface->set_as_default_for_type)
return (* iface->set_as_default_for_type) (appinfo, content_type, error);
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
_("Setting default applications not supported yet"));
return FALSE;
}
/**
@ -354,7 +359,12 @@ g_app_info_set_as_last_used_for_type (GAppInfo *appinfo,
iface = G_APP_INFO_GET_IFACE (appinfo);
return (* iface->set_as_last_used_for_type) (appinfo, content_type, error);
if (iface->set_as_last_used_for_type)
return (* iface->set_as_last_used_for_type) (appinfo, content_type, error);
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
_("Setting application as last used for type not supported yet"));
return FALSE;
}
/**

View File

@ -5093,6 +5093,15 @@ g_win32_app_info_launch_uris (GAppInfo *appinfo,
return res;
}
static gboolean
g_win32_app_info_should_show (GAppInfo *appinfo)
{
/* FIXME: This is a placeholder implementation to avoid crashes
* for now. It can be made more specific to @appinfo in future. */
return TRUE;
}
static gboolean
g_win32_app_info_launch (GAppInfo *appinfo,
GList *files,
@ -5229,7 +5238,7 @@ g_win32_app_info_iface_init (GAppInfoIface *iface)
iface->supports_uris = g_win32_app_info_supports_uris;
iface->supports_files = g_win32_app_info_supports_files;
iface->launch_uris = g_win32_app_info_launch_uris;
/* iface->should_show = g_win32_app_info_should_show;*/
iface->should_show = g_win32_app_info_should_show;
/* iface->set_as_default_for_type = g_win32_app_info_set_as_default_for_type;*/
/* iface->set_as_default_for_extension = g_win32_app_info_set_as_default_for_extension;*/
/* iface->add_supports_type = g_win32_app_info_add_supports_type;*/