Change type of scoped_input_handler::m_quit_handler
authorTom Tromey <tom@tromey.com>
Thu, 21 Sep 2017 15:54:25 +0000 (09:54 -0600)
committerTom Tromey <tom@tromey.com>
Fri, 22 Sep 2017 21:51:28 +0000 (15:51 -0600)
Simon pointed out that scoped_input_handler::m_quit_handler must have
the correct scoped_restore_tmpl type, to avoid binding to a temporary.
This patch fixes the problem.

gdb/ChangeLog
2017-09-22  Tom Tromey  <tom@tromey.com>

* utils.c (class scoped_input_handler) <m_quit_handler>: Change
type to scoped_restore_tmpl.
<scoped_input_handler>: Initialize m_quit_handler directly.

Reviewed-By: Pedro Alves <palves@redhat.com>
gdb/ChangeLog
gdb/utils.c

index 54eadae..aa50dc9 100644 (file)
@@ -1,3 +1,9 @@
+2017-09-22  Tom Tromey  <tom@tromey.com>
+
+       * utils.c (class scoped_input_handler) <m_quit_handler>: Change
+       type to scoped_restore_tmpl.
+       <scoped_input_handler>: Initialize m_quit_handler directly.
+
 2017-09-22  Sergio Durigan Junior  <sergiodj@redhat.com>
 
        * cli/cli-cmds.c (pwd_command): Use "getcwd (NULL, 0)".
index 9fea0f7..41ad35f 100644 (file)
@@ -904,8 +904,7 @@ class scoped_input_handler
 public:
 
   scoped_input_handler ()
-    : m_quit_handler (make_scoped_restore (&quit_handler,
-                                          default_quit_handler)),
+    : m_quit_handler (&quit_handler, default_quit_handler),
       m_ui (NULL)
   {
     target_terminal::ours ();
@@ -928,7 +927,7 @@ private:
   target_terminal::scoped_restore_terminal_state m_term_state;
 
   /* Save and restore the quit handler.  */
-  scoped_restore m_quit_handler;
+  scoped_restore_tmpl<quit_handler_ftype *> m_quit_handler;
 
   /* The saved UI, if non-NULL.  */
   struct ui *m_ui;