Merge handle_inferior_event and handle_inferior_event_1
authorTom Tromey <tromey@adacore.com>
Wed, 20 Mar 2019 13:57:09 +0000 (07:57 -0600)
committerSergio Durigan Junior <sergiodj@redhat.com>
Tue, 26 Mar 2019 21:27:42 +0000 (17:27 -0400)
I noticed that handle_inferior_event is just a small wrapper that
frees the value chain.  This patch replaces it with a
scoped_value_mark, reducing the number of lines of code here.

Regression tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-03-20  Tom Tromey  <tromey@adacore.com>

PR gdb/24391
* infrun.c (handle_inferior_event): Rename from
handle_inferior_event_1.  Create a scoped_value_mark.
(handle_inferior_event): Remove.

gdb/ChangeLog
gdb/infrun.c

index b12ce2a..dccb479 100644 (file)
@@ -1,3 +1,10 @@
+2019-03-20  Tom Tromey  <tromey@adacore.com>
+
+       PR gdb/24391
+       * infrun.c (handle_inferior_event): Rename from
+       handle_inferior_event_1.  Create a scoped_value_mark.
+       (handle_inferior_event): Remove.
+
 2019-03-25  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * source-cache.c (source_cache::get_source_lines): Re-read
index b32635f..1efb8d5 100644 (file)
@@ -4598,8 +4598,13 @@ handle_no_resumed (struct execution_control_state *ecs)
    once).  */
 
 static void
-handle_inferior_event_1 (struct execution_control_state *ecs)
+handle_inferior_event (struct execution_control_state *ecs)
 {
+  /* Make sure that all temporary struct value objects that were
+     created during the handling of the event get deleted at the
+     end.  */
+  scoped_value_mark free_values;
+
   enum stop_kind stop_soon;
 
   if (ecs->ws.kind == TARGET_WAITKIND_IGNORE)
@@ -5196,22 +5201,6 @@ Cannot fill $_exitsignal with the correct signal number.\n"));
     }
 }
 
-/* A wrapper around handle_inferior_event_1, which also makes sure
-   that all temporary struct value objects that were created during
-   the handling of the event get deleted at the end.  */
-
-static void
-handle_inferior_event (struct execution_control_state *ecs)
-{
-  struct value *mark = value_mark ();
-
-  handle_inferior_event_1 (ecs);
-  /* Purge all temporary values created during the event handling,
-     as it could be a long time before we return to the command level
-     where such values would otherwise be purged.  */
-  value_free_to_mark (mark);
-}
-
 /* Restart threads back to what they were trying to do back when we
    paused them for an in-line step-over.  The EVENT_THREAD thread is
    ignored.  */