]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/osdata.c
Automatic date update in version.in
[thirdparty/binutils-gdb.git] / gdb / osdata.c
index a82cbf1ad213e502f9f7d0fdd0469adb2a301185..ea3b7dce43b0c8a33400864c5a96880574cd3716 100644 (file)
@@ -1,6 +1,6 @@
 /* Routines for handling XML generic OS data provided by target.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,7 +19,7 @@
 
 #include "defs.h"
 #include "target.h"
-#include "vec.h"
+#include "gdbsupport/vec.h"
 #include "xml-support.h"
 #include "osdata.h"
 #include "ui-out.h"
@@ -56,14 +56,15 @@ struct osdata_parsing_data
 static void
 osdata_start_osdata (struct gdb_xml_parser *parser,
                         const struct gdb_xml_element *element,
-                        void *user_data, VEC(gdb_xml_value_s) *attributes)
+                        void *user_data,
+                       std::vector<gdb_xml_value> &attributes)
 {
   struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
 
   if (data->osdata != NULL)
     gdb_xml_error (parser, _("Seen more than on osdata element"));
 
-  char *type = (char *) xml_find_attribute (attributes, "type")->value;
+  char *type = (char *) xml_find_attribute (attributes, "type")->value.get ();
   data->osdata.reset (new struct osdata (std::string (type)));
 }
 
@@ -72,7 +73,8 @@ osdata_start_osdata (struct gdb_xml_parser *parser,
 static void
 osdata_start_item (struct gdb_xml_parser *parser,
                   const struct gdb_xml_element *element,
-                  void *user_data, VEC(gdb_xml_value_s) *attributes)
+                  void *user_data,
+                 std::vector<gdb_xml_value> &attributes)
 {
   struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
   data->osdata->items.emplace_back ();
@@ -83,11 +85,12 @@ osdata_start_item (struct gdb_xml_parser *parser,
 static void
 osdata_start_column (struct gdb_xml_parser *parser,
                     const struct gdb_xml_element *element,
-                    void *user_data, VEC(gdb_xml_value_s) *attributes)
+                    void *user_data,
+                   std::vector<gdb_xml_value> &attributes)
 {
   struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
   const char *name
-    = (const char *) xml_find_attribute (attributes, "name")->value;
+    = (const char *) xml_find_attribute (attributes, "name")->value.get ();
 
   data->property_name.assign (name);
 }
@@ -160,11 +163,11 @@ std::unique_ptr<osdata>
 get_osdata (const char *type)
 {
   std::unique_ptr<osdata> osdata;
-  gdb::unique_xmalloc_ptr<char> xml = target_get_osdata (type);
+  gdb::optional<gdb::char_vector> xml = target_get_osdata (type);
 
   if (xml)
     {
-      if (xml.get ()[0] == '\0')
+      if ((*xml)[0] == '\0')
        {
          if (type)
            warning (_("Empty data returned by target.  Wrong osdata type?"));
@@ -172,7 +175,7 @@ get_osdata (const char *type)
            warning (_("Empty type list returned by target.  No type data?"));
        }
       else
-       osdata = osdata_parse (xml.get ());
+       osdata = osdata_parse (xml->data ());
     }
 
   if (osdata == NULL)