summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Gnatenko <ignatenko@redhat.com>2016-04-29 15:53:38 +0200
committerIgor Gnatenko <ignatenko@redhat.com>2016-04-29 15:53:38 +0200
commit1f5dbe969198be9eea0fea09a07b3f46b323f81d (patch)
tree4a937a4a0a6214f5dabb96dcb582e00d838247d0
parent5f8b8ba3ea05cee52390a426d574e39a00831aa3 (diff)
downloadgobject-introspection-ignatenko/g-ir-inspect.tar.gz
fixup! g-ir-inspect: Inspect GI typelibsignatenko/g-ir-inspect
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
-rw-r--r--tools/g-ir-inspect.c47
1 files changed, 31 insertions, 16 deletions
diff --git a/tools/g-ir-inspect.c b/tools/g-ir-inspect.c
index dc15bcb4..7223af1f 100644
--- a/tools/g-ir-inspect.c
+++ b/tools/g-ir-inspect.c
@@ -23,8 +23,6 @@
#include <girepository.h>
#include <stdlib.h>
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GITypelib, g_typelib_free)
-
static void
print_shlibs (const gchar *namespace)
{
@@ -35,9 +33,10 @@ print_shlibs (const gchar *namespace)
if (shlibs && shlibs[0] != '\0')
{
/* shlibs is a comma-separated list of libraries */
- g_auto(GStrv) libs = g_strsplit (shlibs, ",", -1);
- for (i; libs[i]; i++)
+ GStrv libs = g_strsplit (shlibs, ",", -1);
+ for (i = 0; libs[i]; i++)
g_print ("shlib: %s\n", libs[i]);
+ g_strfreev (libs);
}
}
@@ -47,11 +46,12 @@ print_typelibs (const gchar *namespace)
guint i = 0;
/* Finding all the typelib-based Requires */
- g_auto(GStrv) deps = g_irepository_get_dependencies (NULL, namespace);
+ GStrv deps = g_irepository_get_dependencies (NULL, namespace);
if (deps)
{
- for (i; deps[i]; i++)
+ for (i = 0; deps[i]; i++)
g_print ("typelib: %s\n", deps[i]);
+ g_strfreev (deps);
}
}
@@ -59,13 +59,15 @@ gint
main (gint argc,
gchar *argv[])
{
- g_autoptr(GError) error = NULL;
- g_autoptr(GITypelib) typelib = NULL;
+ gint status = EXIT_SUCCESS;
+
+ GError *error = NULL;
+ GITypelib *typelib = NULL;
- g_autofree gchar *version = NULL;
+ gchar *version = NULL;
gboolean opt_shlibs = FALSE;
gboolean opt_typelibs = FALSE;
- g_auto(GStrv) namespaces = NULL;
+ GStrv namespaces = NULL;
const gchar *namespace = NULL;
const GOptionEntry options[] = {
{ "version", 0, 0, G_OPTION_ARG_STRING, &version, "Version", "VERSION" },
@@ -79,34 +81,39 @@ main (gint argc,
g_option_context_add_main_entries (context, options, NULL);
if (!g_option_context_parse (context, &argc, &argv, &error))
{
+ status = EXIT_FAILURE;
g_printerr ("Failed to parse command line options: %s\n", error->message);
- return EXIT_FAILURE;
+ goto out;
}
if (!namespaces)
{
+ status = EXIT_FAILURE;
g_printerr ("Please specify at least one namespace\n");
- return EXIT_FAILURE;
+ goto out;
}
if (g_strv_length (namespaces) > 1)
{
+ status = EXIT_FAILURE;
g_printerr ("Please specify only one namespace\n");
- return EXIT_FAILURE;
+ goto out;
}
namespace = namespaces[0];
if (!opt_shlibs && !opt_typelibs)
{
+ status = EXIT_FAILURE;
g_printerr ("Please specify --print-shlibs, --print-typelibs or both.\n");
- return EXIT_FAILURE;
+ goto out;
}
typelib = g_irepository_require (NULL, namespace, version, 0, &error);
if (!typelib)
{
+ status = EXIT_FAILURE;
g_printerr ("Failed to load typelib: %s\n", error->message);
- return EXIT_FAILURE;
+ goto out;
}
if (opt_shlibs)
@@ -114,5 +121,13 @@ main (gint argc,
if (opt_typelibs)
print_typelibs (namespace);
- return EXIT_SUCCESS;
+out:
+ if (error)
+ g_error_free (error);
+ if (typelib)
+ g_typelib_free (typelib);
+ g_strfreev (namespaces);
+ g_free (version);
+
+ return status;
}