]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/ada-lang.c
gdb: Convert language la_iterate_over_symbols field to a method
[thirdparty/binutils-gdb.git] / gdb / ada-lang.c
index 7d23fd5d12309ea7fe4572f2dce05f6328d7ce14..762c124a654dae0339a179e729ea6e815e7970be 100644 (file)
@@ -5681,7 +5681,7 @@ ada_add_all_symbols (struct obstack *obstackp,
       else
        {
          /* In the !full_search case we're are being called by
-            ada_iterate_over_symbols, and we don't want to search
+            iterate_over_symbols, and we don't want to search
             superblocks.  */
          ada_add_block_symbols (obstackp, block, lookup_name, domain, NULL);
        }
@@ -5782,28 +5782,6 @@ ada_lookup_symbol_list (const char *name, const struct block *block,
   return ada_lookup_symbol_list_worker (lookup_name, block, domain, results, 1);
 }
 
-/* Implementation of the la_iterate_over_symbols method.  */
-
-static bool
-ada_iterate_over_symbols
-  (const struct block *block, const lookup_name_info &name,
-   domain_enum domain,
-   gdb::function_view<symbol_found_callback_ftype> callback)
-{
-  int ndefs, i;
-  std::vector<struct block_symbol> results;
-
-  ndefs = ada_lookup_symbol_list_worker (name, block, domain, &results, 0);
-
-  for (i = 0; i < ndefs; ++i)
-    {
-      if (!callback (&results[i]))
-       return false;
-    }
-
-  return true;
-}
-
 /* The result is as for ada_lookup_symbol_list with FULL_SEARCH set
    to 1, but choosing the first symbol found if there are multiple
    choices.
@@ -13999,7 +13977,6 @@ extern const struct language_data ada_language_data =
   ada_collect_symbol_completion_matches,
   ada_watch_location_expression,
   ada_get_symbol_name_matcher, /* la_get_symbol_name_matcher */
-  ada_iterate_over_symbols,
   default_search_name_hash,
   &ada_varobj_ops,
   NULL,
@@ -14114,6 +14091,25 @@ public:
     lai->bool_type_symbol = NULL;
     lai->bool_type_default = builtin->builtin_bool;
   }
+
+  /* See language.h.  */
+
+  bool iterate_over_symbols
+       (const struct block *block, const lookup_name_info &name,
+        domain_enum domain,
+        gdb::function_view<symbol_found_callback_ftype> callback) const override
+  {
+    std::vector<struct block_symbol> results;
+
+    ada_lookup_symbol_list_worker (name, block, domain, &results, 0);
+    for (block_symbol &sym : results)
+      {
+       if (!callback (&sym))
+         return false;
+      }
+
+    return true;
+  }
 };
 
 /* Single instance of the Ada language class.  */