[gnome-terminal/gnome-3-36] screen: Take a ref to the FD list
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-terminal/gnome-3-36] screen: Take a ref to the FD list
- Date: Sat, 25 Apr 2020 20:01:34 +0000 (UTC)
commit c6f72400b39525ecd22def77ec117d924cc519fa
Author: Christian Persch <chpe src gnome org>
Date: Thu Apr 23 23:18:08 2020 +0200
screen: Take a ref to the FD list
(cherry picked from commit dcd77201aade51bab925b8257d79766ca7acd714)
src/terminal-screen.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 33fbb5df..0cd16d6c 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -77,6 +77,7 @@ typedef struct {
GSpawnFlags spawn_flags;
/* FD passing */
+ GUnixFDList *fd_list_obj;
int *fd_list;
int fd_list_len;
const int *fd_array;
@@ -277,7 +278,7 @@ exec_data_clone (ExecData *data)
clone->cwd = g_strdup (data->cwd);
/* If FDs were passed, cannot repeat argv. Return data only for env and cwd */
- if (data->fd_list != NULL) {
+ if (data->fd_list_obj != NULL) {
clone->as_shell = TRUE;
return clone;
}
@@ -318,6 +319,7 @@ exec_data_unref (ExecData *data)
g_strfreev (data->envv);
g_free (data->cwd);
g_free (data->fd_list);
+ g_clear_object (&data->fd_list_obj);
if (data->callback_data_destroy_notify && data->callback_data)
data->callback_data_destroy_notify (data->callback_data);
@@ -968,6 +970,7 @@ terminal_screen_exec (TerminalScreen *screen,
envv = g_environ_unsetenv (envv, "PWD");
}
+ data->fd_list_obj = fd_list ? g_object_ref(fd_list) : NULL;
if (fd_list) {
const int *fds;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]