/* Definitions for targets which report shared library events.
- Copyright (C) 2007-2019 Free Software Foundation, Inc.
+ Copyright (C) 2007-2020 Free Software Foundation, Inc.
This file is part of GDB.
#include "symtab.h"
#include "symfile.h"
#include "target.h"
-#include "common/vec.h"
#include "solib-target.h"
#include <vector>
/* The cached offsets for each section of this shared library,
determined from SEGMENT_BASES, or SECTION_BASES. */
- section_offsets *offsets = NULL;
+ gdb::unique_xmalloc_ptr<section_offsets> offsets;
};
typedef std::vector<std::unique_ptr<lm_info_target>> lm_info_vector;
{
int num_sections = gdb_bfd_count_sections (so->abfd);
- li->offsets
- = ((struct section_offsets *)
- xzalloc (SIZEOF_N_SECTION_OFFSETS (num_sections)));
+ li->offsets.reset ((struct section_offsets *)
+ xzalloc (SIZEOF_N_SECTION_OFFSETS (num_sections)));
if (!li->section_bases.empty ())
{
for (i = 0, sect = so->abfd->sections;
sect != NULL;
i++, sect = sect->next)
- if ((bfd_get_section_flags (so->abfd, sect) & SEC_ALLOC))
+ if ((bfd_section_flags (sect) & SEC_ALLOC))
num_alloc_sections++;
if (num_alloc_sections != li->section_bases.size ())
sect != NULL;
i++, sect = sect->next)
{
- if (!(bfd_get_section_flags (so->abfd, sect) & SEC_ALLOC))
+ if (!(bfd_section_flags (sect) & SEC_ALLOC))
continue;
- if (bfd_section_size (so->abfd, sect) > 0)
+ if (bfd_section_size (sect) > 0)
{
CORE_ADDR low, high;
low = li->section_bases[i];
- high = low + bfd_section_size (so->abfd, sect) - 1;
+ high = low + bfd_section_size (sect) - 1;
if (low < so->addr_low)
so->addr_low = low;
ULONGEST orig_delta;
int i;
- if (!symfile_map_offsets_to_segments (so->abfd, data, li->offsets,
+ if (!symfile_map_offsets_to_segments (so->abfd, data,
+ li->offsets.get (),
li->segment_bases.size (),
li->segment_bases.data ()))
warning (_("\