[file-roller] Revert "Fix fr_application_local_command_line memory leak"



commit 75c8032b4fd0cd347437422bb80cbe9b6a89de71
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Thu Sep 15 10:36:53 2016 +0200

    Revert "Fix fr_application_local_command_line memory leak"
    
    This reverts commit 1139c1a6bc1707fdb64e8baa824d19b83c4ff835.
    
    The commit introduce a bug that prevent opening other archives
    when a file-roller window is already open.
    
    Steps to reproduce the bug:
    
    * open a Nautilus window
    * click on an archive -> file-roller shows the archive content correctly
    * click on another archive (without closing the first file-roller window) -> the new file-roller window is
    empty

 src/fr-application.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/src/fr-application.c b/src/fr-application.c
index 92e2fc9..06d86a1 100644
--- a/src/fr-application.c
+++ b/src/fr-application.c
@@ -641,19 +641,21 @@ fr_application_local_command_line (GApplication   *application,
                                    char         ***arguments,
                                    int            *exit_status)
 {
+        char           **local_argv;
         int              local_argc;
         GOptionContext  *context;
         GError          *error = NULL;
         gboolean         handled_locally = FALSE;
 
-        local_argc = g_strv_length (*arguments);
+        local_argv = g_strdupv (*arguments);
+        local_argc = g_strv_length (local_argv);
 
-        program_argv0 = *arguments[0];
+        program_argv0 = local_argv[0];
         *exit_status = 0;
 
         context = fr_application_create_option_context ();
         g_option_context_set_ignore_unknown_options (context, TRUE);
-       if (! g_option_context_parse (context, &local_argc, arguments, &error)) {
+       if (! g_option_context_parse (context, &local_argc, &local_argv, &error)) {
                *exit_status = EXIT_FAILURE;
                g_critical ("Failed to parse arguments: %s", error->message);
                 g_clear_error (&error);
@@ -666,6 +668,7 @@ fr_application_local_command_line (GApplication   *application,
        }
 
        g_option_context_free (context);
+        g_strfreev (local_argv);
 
         return handled_locally;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]