Use scoped_restore in safe_parse_type
authorTom Tromey <tromey@adacore.com>
Thu, 11 Aug 2022 17:59:06 +0000 (11:59 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 31 Aug 2022 17:03:40 +0000 (11:03 -0600)
This changes safe_parse_type to use scoped_restore rather than
explicit assignments.

gdb/gdbtypes.c

index 8c2558dd7ac85f67926b0edce53ee11388558210..c458b2041570ebe7581db13ea607f79dbe52b2f3 100644 (file)
@@ -3168,12 +3168,11 @@ check_typedef (struct type *type)
 static struct type *
 safe_parse_type (struct gdbarch *gdbarch, const char *p, int length)
 {
-  struct ui_file *saved_gdb_stderr;
   struct type *type = NULL; /* Initialize to keep gcc happy.  */
 
   /* Suppress error messages.  */
-  saved_gdb_stderr = gdb_stderr;
-  gdb_stderr = &null_stream;
+  scoped_restore saved_gdb_stderr = make_scoped_restore (&gdb_stderr,
+                                                        &null_stream);
 
   /* Call parse_and_eval_type() without fear of longjmp()s.  */
   try
@@ -3185,9 +3184,6 @@ safe_parse_type (struct gdbarch *gdbarch, const char *p, int length)
       type = builtin_type (gdbarch)->builtin_void;
     }
 
-  /* Stop suppressing error messages.  */
-  gdb_stderr = saved_gdb_stderr;
-
   return type;
 }