Change the as_*_interp functions to use dynamic_cast
authorTom Tromey <tom@tromey.com>
Mon, 30 Apr 2018 05:12:05 +0000 (23:12 -0600)
committerTom Tromey <tom@tromey.com>
Fri, 25 May 2018 18:41:00 +0000 (12:41 -0600)
This changes the various as_*_interp functions to be implemented using
dynamic_cast.  I believe this is a small improvement, because it is
more typesafe -- the C++ runtime does the type-checking for us.

ChangeLog
2018-05-25  Tom Tromey  <tom@tromey.com>

* tui/tui-interp.c (as_tui_interp): Use dynamic_cast.
* mi/mi-interp.c (as_mi_interp): Use dynamic_cast.
* cli/cli-interp.c (as_cli_interp): Use dynamic_cast.

gdb/ChangeLog
gdb/cli/cli-interp.c
gdb/mi/mi-interp.c
gdb/tui/tui-interp.c

index 3e199b6..1cf048b 100644 (file)
@@ -1,5 +1,11 @@
 2018-05-25  Tom Tromey  <tom@tromey.com>
 
+       * tui/tui-interp.c (as_tui_interp): Use dynamic_cast.
+       * mi/mi-interp.c (as_mi_interp): Use dynamic_cast.
+       * cli/cli-interp.c (as_cli_interp): Use dynamic_cast.
+
+2018-05-25  Tom Tromey  <tom@tromey.com>
+
        * cli/cli-interp.c (safe_execute_command): Use scoped_restore.
        * interps.c (interp_exec): Use scoped_restore.
 
index 0663301..e12d45b 100644 (file)
@@ -73,9 +73,7 @@ struct cli_suppress_notification cli_suppress_notification =
 static struct cli_interp *
 as_cli_interp (struct interp *interp)
 {
-  if (strcmp (interp_name (interp), INTERP_CONSOLE) == 0)
-    return (struct cli_interp *) interp;
-  return NULL;
+  return dynamic_cast<cli_interp *> (interp);
 }
 
 /* Longjmp-safe wrapper for "execute_command".  */
index 8bfb129..7536817 100644 (file)
@@ -106,9 +106,7 @@ display_mi_prompt (struct mi_interp *mi)
 static struct mi_interp *
 as_mi_interp (struct interp *interp)
 {
-  if (interp_ui_out (interp)->is_mi_like_p ())
-    return (struct mi_interp *) interp;
-  return NULL;
+  return dynamic_cast<mi_interp *> (interp);
 }
 
 void
index cf32c90..aa5e328 100644 (file)
@@ -58,9 +58,7 @@ public:
 static tui_interp *
 as_tui_interp (struct interp *interp)
 {
-  if (strcmp (interp_name (interp), INTERP_TUI) == 0)
-    return (tui_interp *) interp;
-  return NULL;
+  return dynamic_cast<tui_interp *> (interp);
 }
 
 /* Cleanup the tui before exiting.  */