Remove last cleanups from solib-svr4.c
authorTom Tromey <tom@tromey.com>
Thu, 24 Jan 2019 13:41:12 +0000 (06:41 -0700)
committerTom Tromey <tom@tromey.com>
Wed, 6 Mar 2019 23:04:31 +0000 (16:04 -0700)
This removes the last cleanups from solib-svr4.c, replacing them with
uses of make_scope_exit.

2019-03-06  Tom Tromey  <tom@tromey.com>

* solib-svr4.c (svr4_parse_libraries, svr4_current_sos_direct):
Use make_scope_exit.

gdb/ChangeLog
gdb/solib-svr4.c

index e7c6a18bd23abd93f43d3b5c2e87d5d6536417de..0a3698e888ab8c8d74c10ef7726d150243a1bf1c 100644 (file)
@@ -1,3 +1,8 @@
+2019-03-06  Tom Tromey  <tom@tromey.com>
+
+       * solib-svr4.c (svr4_parse_libraries, svr4_current_sos_direct):
+       Use make_scope_exit.
+
 2019-03-06  Tom Tromey  <tom@tromey.com>
 
        * solib-svr4.c (disable_probes_interface): Remove parameter.
index 2b370ef96d058d8d06c0168387a566afd40ab509..84693c17666b9b76fd3a4250fb29f0bca8f7b8a7 100644 (file)
@@ -1198,8 +1198,10 @@ static const struct gdb_xml_element svr4_library_list_elements[] =
 static int
 svr4_parse_libraries (const char *document, struct svr4_library_list *list)
 {
-  struct cleanup *back_to = make_cleanup (svr4_free_library_list,
-                                         &list->head);
+  auto cleanup = make_scope_exit ([&] ()
+    {
+      svr4_free_library_list (&list->head);
+    });
 
   memset (list, 0, sizeof (*list));
   list->tailp = &list->head;
@@ -1207,11 +1209,10 @@ svr4_parse_libraries (const char *document, struct svr4_library_list *list)
                           svr4_library_list_elements, document, list) == 0)
     {
       /* Parsed successfully, keep the result.  */
-      discard_cleanups (back_to);
+      cleanup.release ();
       return 1;
     }
 
-  do_cleanups (back_to);
   return 0;
 }
 
@@ -1374,7 +1375,6 @@ svr4_current_sos_direct (struct svr4_info *info)
   CORE_ADDR lm;
   struct so_list *head = NULL;
   struct so_list **link_ptr = &head;
-  struct cleanup *back_to;
   int ignore_first;
   struct svr4_library_list library_list;
 
@@ -1412,7 +1412,10 @@ svr4_current_sos_direct (struct svr4_info *info)
   else
     ignore_first = 1;
 
-  back_to = make_cleanup (svr4_free_library_list, &head);
+  auto cleanup = make_scope_exit ([&] ()
+    {
+      svr4_free_library_list (&head);
+    });
 
   /* Walk the inferior's link map list, and build our list of
      `struct so_list' nodes.  */
@@ -1428,7 +1431,7 @@ svr4_current_sos_direct (struct svr4_info *info)
   if (lm)
     svr4_read_so_list (lm, 0, &link_ptr, 0);
 
-  discard_cleanups (back_to);
+  cleanup.release ();
 
   if (head == NULL)
     return svr4_default_sos ();