mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 15:06:14 +01:00
[girepository] Fix up error printing
We didn't show the right error message if we failed to find the symbol; fix this by removing error printing from the middle of the dumper, and add it correctly to the toplevel dump entry point.
This commit is contained in:
parent
f552f46f88
commit
9b1bb64e83
12
gdump.c
12
gdump.c
@ -68,6 +68,7 @@ static GType
|
||||
invoke_get_type (GModule *self, const char *symbol, GError **error)
|
||||
{
|
||||
GetTypeFunc sym;
|
||||
GType ret;
|
||||
|
||||
if (!g_module_symbol (self, symbol, (void**)&sym))
|
||||
{
|
||||
@ -78,7 +79,15 @@ invoke_get_type (GModule *self, const char *symbol, GError **error)
|
||||
return G_TYPE_INVALID;
|
||||
}
|
||||
|
||||
return sym ();
|
||||
ret = sym ();
|
||||
if (ret == G_TYPE_INVALID)
|
||||
{
|
||||
g_set_error (error,
|
||||
G_IO_ERROR,
|
||||
G_IO_ERROR_FAILED,
|
||||
"Function '%s' returned G_TYPE_INVALID", symbol);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -429,7 +438,6 @@ g_irepository_dump (const char *arg, GError **error)
|
||||
|
||||
if (type == G_TYPE_INVALID)
|
||||
{
|
||||
g_printerr ("Invalid GType: '%s'\n", line);
|
||||
caught_error = TRUE;
|
||||
g_free (line);
|
||||
break;
|
||||
|
@ -1378,8 +1378,15 @@ g_irepository_introspect_cb (const char *option_name,
|
||||
gpointer data,
|
||||
GError **error)
|
||||
{
|
||||
gboolean ret = g_irepository_dump (value, error);
|
||||
exit (ret ? 0 : 1);
|
||||
GError *tmp_error = NULL;
|
||||
gboolean ret = g_irepository_dump (value, &tmp_error);
|
||||
if (!ret)
|
||||
{
|
||||
g_error ("Failed to extract GType data: %s",
|
||||
tmp_error->message);
|
||||
exit (1);
|
||||
}
|
||||
exit (0);
|
||||
}
|
||||
|
||||
static const GOptionEntry introspection_args[] = {
|
||||
|
Loading…
Reference in New Issue
Block a user