Checks if calling g_variant_get() with @format_string on @value would
be valid from a type-compatibility standpoint. @format_string is
assumed to be a valid format string (from a syntactic standpoint).
If @copy_only is %TRUE then this function additionally checks that it
would be safe to call g_variant_unref() on @value immediately after
the call to g_variant_get() without invalidating the result. This is
only possible if deep copies are made (ie: there are no pointers to
the data inside of the soon-to-be-freed #GVariant instance). If this
check fails then a g_critical() is printed and %FALSE is returned.
This function is meant to be used by functions that wish to provide
varargs accessors to #GVariant values of uncertain values (eg:
g_variant_lookup() or g_menu_model_get_item_attribute()).
Checks if calling g_variant_get() with @format_string on @value would be valid from a type-compatibility standpoint. @format_string is assumed to be a valid format string (from a syntactic standpoint).
If @copy_only is %TRUE then this function additionally checks that it would be safe to call g_variant_unref() on @value immediately after the call to g_variant_get() without invalidating the result. This is only possible if deep copies are made (ie: there are no pointers to the data inside of the soon-to-be-freed #GVariant instance). If this check fails then a g_critical() is printed and %FALSE is returned.
This function is meant to be used by functions that wish to provide varargs accessors to #GVariant values of uncertain values (eg: g_variant_lookup() or g_menu_model_get_item_attribute()).