Replace VEC(gdb_xml_value_s) with std::vector
This patch replaces VEC(gdb_xml_value_s), which is passed to XML visitors, with an std::vector. In order to be able to remove the cleanup in gdb_xml_parser::start_element, the gdb_xml_parser structure is made to own the value with a gdb::unique_xmalloc_ptr. This patch has been tested on the buildbot. gdb/ChangeLog: * xml-support.h (struct gdb_xml_value): Add constructor. <value>: Change type to unique_xmalloc_ptr. (gdb_xml_value_s): Remove typedef. (DEF_VEC_O (gdb_xml_value_s)): Remove. (gdb_xml_element_start_handler): Change parameter type to std::vector. (xml_find_attribute): Likewise. * xml-support.c (xml_find_attribute): Change parameter type to std::vector and adjust. (gdb_xml_values_cleanup): Remove. (gdb_xml_parser::start_element): Adjust to std::vector. (xinclude_start_include): Change paraeter type to std::vector and adjust. * btrace.c (check_xml_btrace_version): Likewise. (parse_xml_btrace_block): Likewise. (parse_xml_btrace_pt_config_cpu): Likewise. (parse_xml_btrace_pt): Likewise. (parse_xml_btrace_conf_bts): Likewise. (parse_xml_btrace_conf_pt): Likewise. * memory-map.c (memory_map_start_memory): Likewise. (memory_map_start_property): Likewise. * osdata.c (osdata_start_osdata): Likewise. (osdata_start_item): Likewise. (osdata_start_column): Likewise. * remote.c (start_thread): Likewise. * solib-aix.c (library_list_start_library): Likewise. (library_list_start_list): Likewise. * solib-svr4.c (library_list_start_library): Likewise. (svr4_library_list_start_list): Likewise. * solib-target.c (library_list_start_segment): Likewise. (library_list_start_section): Likewise. (library_list_start_library): Likewise. (library_list_start_list): Likewise. * tracepoint.c (traceframe_info_start_memory): Likewise. (traceframe_info_start_tvar): Likewise. * xml-syscall.c (syscall_start_syscall): Likewise. * xml-tdesc.c (tdesc_start_target): Likewise. (tdesc_start_feature): Likewise. (tdesc_start_reg): Likewise. (tdesc_start_union): Likewise. (tdesc_start_struct): Likewise. (tdesc_start_flags): Likewise. (tdesc_start_enum): Likewise. (tdesc_start_field): Likewise. (tdesc_start_enum_value): Likewise. (tdesc_start_vector): Likewise.
This commit is contained in:
parent
f979c73fd0
commit
4d0fdd9b35
13 changed files with 203 additions and 154 deletions
|
@ -3959,15 +3959,16 @@ parse_traceframe_info (const char *tframe_info)
|
|||
static void
|
||||
traceframe_info_start_memory (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 traceframe_info *info = (struct traceframe_info *) user_data;
|
||||
ULONGEST *start_p, *length_p;
|
||||
|
||||
start_p
|
||||
= (ULONGEST *) xml_find_attribute (attributes, "start")->value;
|
||||
= (ULONGEST *) xml_find_attribute (attributes, "start")->value.get ();
|
||||
length_p
|
||||
= (ULONGEST *) xml_find_attribute (attributes, "length")->value;
|
||||
= (ULONGEST *) xml_find_attribute (attributes, "length")->value.get ();
|
||||
|
||||
info->memory.emplace_back (*start_p, *length_p);
|
||||
}
|
||||
|
@ -3978,11 +3979,11 @@ static void
|
|||
traceframe_info_start_tvar (struct gdb_xml_parser *parser,
|
||||
const struct gdb_xml_element *element,
|
||||
void *user_data,
|
||||
VEC(gdb_xml_value_s) *attributes)
|
||||
std::vector<gdb_xml_value> &attributes)
|
||||
{
|
||||
struct traceframe_info *info = (struct traceframe_info *) user_data;
|
||||
const char *id_attrib
|
||||
= (const char *) xml_find_attribute (attributes, "id")->value;
|
||||
= (const char *) xml_find_attribute (attributes, "id")->value.get ();
|
||||
int id = gdb_xml_parse_ulongest (parser, id_attrib);
|
||||
|
||||
info->tvars.push_back (id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue