int num_tokens;
int i;
- icon = NULL;
- klass = NULL;
-
num_tokens = g_strv_length (tokens);
- if (num_tokens < 1)
- {
- g_set_error (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("Wrong number of tokens (%d)"),
- num_tokens);
- goto out;
- }
+ g_return_val_if_fail (num_tokens >= 1, NULL);
typename = tokens[0];
version_str = strchr (typename, '.');
type = g_type_from_name (tokens[0]);
- if (type == 0)
- {
- g_set_error (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("No type for class name %s"),
- tokens[0]);
- goto out;
- }
-
- if (!g_type_is_a (type, G_TYPE_ICON))
- {
- g_set_error (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("Type %s does not implement the GIcon interface"),
- tokens[0]);
- goto out;
- }
+ g_return_val_if_fail (type != 0, NULL);
+ g_return_val_if_fail (g_type_is_a (type, G_TYPE_ICON), NULL);
klass = g_type_class_ref (type);
- if (klass == NULL)
- {
- g_set_error (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("Type %s is not classed"),
- tokens[0]);
- goto out;
- }
+ g_return_val_if_fail (klass, NULL);
version = 0;
if (version_str)
{
version = strtol (version_str, &endp, 10);
- if (endp == NULL || *endp != '\0')
- {
- g_set_error (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("Malformed version number: %s"),
- version_str);
- goto out;
- }
+ g_return_val_if_fail (endp && *endp, NULL);
}
icon_iface = g_type_interface_peek (klass, G_TYPE_ICON);
g_assert (icon_iface != NULL);
- if (icon_iface->from_tokens == NULL)
- {
- g_set_error (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("Type %s does not implement from_tokens() on the GIcon interface"),
- tokens[0]);
- goto out;
- }
+ g_return_val_if_fail (icon_iface->from_tokens, NULL);
for (i = 1; i < num_tokens; i++)
{
icon = icon_iface->from_tokens (tokens + 1, num_tokens - 1, version, error);
- out:
- if (klass != NULL)
- g_type_class_unref (klass);
+ g_type_class_unref (klass);
return icon;
}
g_set_error_literal (error,
G_IO_ERROR,
G_IO_ERROR_INVALID_ARGUMENT,
- _("Can't handle the supplied version of the icon encoding"));
+ "Can't handle the supplied version of the icon encoding");
return icon;
}