summaryrefslogtreecommitdiff
path: root/src/vte-private.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2008-05-09 19:50:37 +0000
committerChris Wilson <cpwilson@src.gnome.org>2008-05-09 19:50:37 +0000
commita51119aca141b00564b680472d9cbb56311ec40e (patch)
tree34f5487cb6804cda956258eedc40b9b9aace9ba5 /src/vte-private.h
parentef4e36154eabf2d74bc1f48db8ef095cec02cbc5 (diff)
Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion `channel != NULL'
2008-05-09 Chris Wilson <chris@chris-wilson.co.uk> Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion `channel != NULL' failed" * src/debug.c (_vte_debug_parse_string): * src/debug.h: * src/vte-private.h: * src/vte.c (vte_terminal_emit_adjustment_changed), (_vte_terminal_adjust_adjustments_full), (vte_terminal_scroll_lines), (vte_terminal_maybe_scroll_to_bottom), (_vte_terminal_insert_char), (vte_terminal_catch_child_exited), (mark_input_source_invalid), (_vte_terminal_connect_pty_read), (mark_output_source_invalid), (_vte_terminal_connect_pty_write), (_vte_terminal_disconnect_pty_read), (_vte_terminal_disconnect_pty_write), (_vte_terminal_fork_basic), (vte_terminal_eof), (_vte_terminal_enable_input_source), (vte_terminal_io_read), (vte_terminal_handle_scroll), (vte_terminal_finalize), (vte_terminal_class_init), (vte_terminal_set_pty), (process_timeout), (update_repeat_timeout), (update_timeout): It was possible for _vte_terminal_enable_input_source() to be called after the input closed with G_IO_HUP. The minimal change would just have been to add a guard to check the pty_master was still valid before reattaching the source. Instead I removed the redundant duplication of the input and output channels and added lots of debugging. svn path=/trunk/; revision=2041
Diffstat (limited to 'src/vte-private.h')
-rw-r--r--src/vte-private.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/vte-private.h b/src/vte-private.h
index 65c985c..ceed7ad 100644
--- a/src/vte-private.h
+++ b/src/vte-private.h
@@ -177,11 +177,10 @@ struct _VteTerminalPrivate {
/* PTY handling data. */
const char *shell; /* shell we started */
int pty_master; /* pty master descriptor */
- GIOChannel *pty_input; /* master input watch */
+ GIOChannel *pty_channel; /* master channel */
guint pty_input_source;
- gboolean pty_input_active;
- GIOChannel *pty_output; /* master output watch */
guint pty_output_source;
+ gboolean pty_input_active;
GPid pty_pid; /* pid of child using pty slave */
VteReaper *pty_reaper;