61 lines
2.1 KiB
Diff
61 lines
2.1 KiB
Diff
|
From b78272c758a7f1835471e3804d1e9340e69bd2a3 Mon Sep 17 00:00:00 2001
|
||
|
From: Paolo Bacchilega <paobac@src.gnome.org>
|
||
|
Date: Thu, 15 Sep 2016 10:36:53 +0200
|
||
|
Subject: 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 file changed, 6 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/src/fr-application.c b/src/fr-application.c
|
||
|
index 43e8e20..a2442d5 100644
|
||
|
--- a/src/fr-application.c
|
||
|
+++ b/src/fr-application.c
|
||
|
@@ -644,19 +644,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);
|
||
|
@@ -669,6 +671,7 @@ fr_application_local_command_line (GApplication *application,
|
||
|
}
|
||
|
|
||
|
g_option_context_free (context);
|
||
|
+ g_strfreev (local_argv);
|
||
|
|
||
|
return handled_locally;
|
||
|
}
|
||
|
--
|
||
|
cgit v0.12
|
||
|
|