Remove unnecessary calls to wrap_here and gdb_flush
authorTom Tromey <tom@tromey.com>
Tue, 4 Jan 2022 00:12:22 +0000 (17:12 -0700)
committerTom Tromey <tom@tromey.com>
Tue, 29 Mar 2022 18:46:25 +0000 (12:46 -0600)
Various spots in gdb currently know about the wrap buffer, and so are
careful to call wrap_here to be certain that all output has been
flushed.

Now that the pager is just an ordinary stream, this isn't needed, and
a simple call to gdb_flush is enough.

Similarly, there are places where gdb prints to gdb_stderr, but first
flushes gdb_stdout.  stderr_file already flushes gdb_stdout, so these
aren't needed.

gdb/cli/cli-cmds.c
gdb/exceptions.c
gdb/main.c
gdb/printcmd.c
gdb/psymtab.c
gdb/top.c
gdb/utils.c

index 6a03f25c206da450187a38ca3c711c2fb11e1eb7..e12ccee2e48d4dffa78c8dc3616351c1bbba685a 100644 (file)
@@ -846,7 +846,6 @@ echo_command (const char *text, int from_tty)
   gdb_stdout->reset_style ();
 
   /* Force this output to appear now.  */
-  gdb_stdout->wrap_here (0);
   gdb_flush (gdb_stdout);
 }
 
index 64a36273a61f8787e39cf0e16366cb1353eb60c2..fdb65b3dc4b3472afe5391dea33a1ceccb18d8d4 100644 (file)
@@ -46,19 +46,15 @@ print_flush (void)
     }
 
   /* We want all output to appear now, before we print the error.  We
-     have 3 levels of buffering we have to flush (it's possible that
+     have 2 levels of buffering we have to flush (it's possible that
      some of these should be changed to flush the lower-level ones
      too):  */
 
-  /* 1.  The _filtered buffer.  */
-  if (filtered_printing_initialized ())
-    gdb_stdout->wrap_here (0);
-
-  /* 2.  The stdio buffer.  */
+  /* 1.  The stdio buffer.  */
   gdb_flush (gdb_stdout);
   gdb_flush (gdb_stderr);
 
-  /* 3.  The system-level buffer.  */
+  /* 2.  The system-level buffer.  */
   gdb_stdout_serial = serial_fdopen (fileno (ui->outstream));
   if (gdb_stdout_serial)
     {
index 0723ea4ae65a80dbaf90d2f20d96934b409a30fb..acb7a45fb7c56a8c0c97c55df9a33d318f62b919 100644 (file)
@@ -1124,7 +1124,6 @@ captured_main_1 (struct captured_main_args *context)
   if (print_version)
     {
       print_gdb_version (gdb_stdout, false);
-      gdb_stdout->wrap_here (0);
       gdb_printf ("\n");
       exit (0);
     }
@@ -1138,7 +1137,6 @@ captured_main_1 (struct captured_main_args *context)
   if (print_configuration)
     {
       print_gdb_configuration (gdb_stdout);
-      gdb_stdout->wrap_here (0);
       gdb_printf ("\n");
       exit (0);
     }
@@ -1154,7 +1152,6 @@ captured_main_1 (struct captured_main_args *context)
       print_gdb_version (gdb_stdout, true);
       if (symarg)
        gdb_printf ("..");
-      gdb_stdout->wrap_here (0);
       gdb_printf ("\n");
       gdb_flush (gdb_stdout);  /* Force to screen during slow
                                   operations.  */
@@ -1175,7 +1172,6 @@ captured_main_1 (struct captured_main_args *context)
       print_gdb_version (gdb_stdout, true);
       if (symarg)
        gdb_printf ("..");
-      gdb_stdout->wrap_here (0);
       gdb_printf ("\n");
       gdb_flush (gdb_stdout);  /* Force to screen during slow
                                   operations.  */
index 396d1feda5b77982d0e345cd0548213e7403fb9f..3930d0898369c77ee4db5ef3e76e75cc586f4c62 100644 (file)
@@ -1493,7 +1493,6 @@ output_command (const char *exp, int from_tty)
 
   annotate_value_end ();
 
-  gdb_stdout->wrap_here (0);
   gdb_flush (gdb_stdout);
 }
 
index a3aa4aeaec413a2b8c399456b20aec0b3b9bb081..b31ce877b62d7c6b5950a8406748e477f9bed3e9 100644 (file)
@@ -1426,7 +1426,6 @@ partial_symtab::expand_dependencies (struct objfile *objfile)
              gdb_puts ("and ");
              gdb_stdout->wrap_here (0);
              gdb_printf ("%s...", dependencies[i]->filename);
-             gdb_stdout->wrap_here (0);        /* Flush output */
              gdb_flush (gdb_stdout);
            }
          dependencies[i]->expand_psymtab (objfile);
index 05b2b43402ec395f4397ff844a1209ed4c511358..a28e72f77f35057a5276d7918a46dc3c2cd55a54 100644 (file)
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1358,7 +1358,6 @@ command_line_input (const char *prompt_arg, const char *annotation_suffix)
       /* Make sure that all output has been output.  Some machines may
         let you get away with leaving out some of the gdb_flush, but
         not all.  */
-      gdb_stdout->wrap_here (0);
       gdb_flush (gdb_stdout);
       gdb_flush (gdb_stderr);
 
index 8d3a89cf03629df116a126142505219b34257fea..2df9b1d7dcf42e04c2ff110dcd0b729892b26cef 100644 (file)
@@ -146,9 +146,6 @@ vwarning (const char *string, va_list args)
          term_state.emplace ();
          target_terminal::ours_for_output ();
        }
-      if (filtered_printing_initialized ())
-       gdb_stdout->wrap_here (0);      /* Force out any buffered output.  */
-      gdb_flush (gdb_stdout);
       if (warning_pre_print)
        gdb_puts (warning_pre_print, gdb_stderr);
       gdb_vprintf (gdb_stderr, string, args);
@@ -650,9 +647,6 @@ void
 print_sys_errmsg (const char *string, int errcode)
 {
   const char *err = safe_strerror (errcode);
-  /* We want anything which was printed on stdout to come out first, before
-     this message.  */
-  gdb_flush (gdb_stdout);
   gdb_printf (gdb_stderr, "%s: %s.\n", string, err);
 }