mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-16 12:34:43 +00:00
gdb: change blockvector_contains_pc to be a method
This changes blockvector_contains_pc() to be a method contains() of struct blockvector. Approved-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
16
gdb/block.c
16
gdb/block.c
@@ -151,14 +151,6 @@ blockvector_for_pc_sect (CORE_ADDR pc, struct obj_section *section,
|
|||||||
return bl;
|
return bl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return true if the blockvector BV contains PC, false otherwise. */
|
|
||||||
|
|
||||||
int
|
|
||||||
blockvector_contains_pc (const struct blockvector *bv, CORE_ADDR pc)
|
|
||||||
{
|
|
||||||
return bv->lookup (pc) != nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return call_site for specified PC in GDBARCH. PC must match exactly, it
|
/* Return call_site for specified PC in GDBARCH. PC must match exactly, it
|
||||||
must be the next instruction after call (or after tail call jump). Throw
|
must be the next instruction after call (or after tail call jump). Throw
|
||||||
NO_ENTRY_VALUE_ERROR otherwise. This function never returns NULL. */
|
NO_ENTRY_VALUE_ERROR otherwise. This function never returns NULL. */
|
||||||
@@ -840,6 +832,14 @@ blockvector::lookup (CORE_ADDR addr) const
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* See block.h. */
|
||||||
|
|
||||||
|
bool
|
||||||
|
blockvector::contains (CORE_ADDR addr) const
|
||||||
|
{
|
||||||
|
return lookup (addr) != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
blockvector::~blockvector ()
|
blockvector::~blockvector ()
|
||||||
{
|
{
|
||||||
for (struct block *bl : m_blocks)
|
for (struct block *bl : m_blocks)
|
||||||
|
|||||||
@@ -506,6 +506,9 @@ struct blockvector
|
|||||||
if there is one, NULL otherwise. */
|
if there is one, NULL otherwise. */
|
||||||
const struct block *lookup (CORE_ADDR addr) const;
|
const struct block *lookup (CORE_ADDR addr) const;
|
||||||
|
|
||||||
|
/* Return true if the blockvector contains ADDR, false otherwise. */
|
||||||
|
bool contains (CORE_ADDR addr) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/* An address map mapping addresses to blocks in this blockvector.
|
/* An address map mapping addresses to blocks in this blockvector.
|
||||||
This pointer is zero if the blocks' start and end addresses are
|
This pointer is zero if the blocks' start and end addresses are
|
||||||
@@ -525,8 +528,6 @@ extern const struct blockvector *
|
|||||||
blockvector_for_pc_sect (CORE_ADDR, struct obj_section *,
|
blockvector_for_pc_sect (CORE_ADDR, struct obj_section *,
|
||||||
const struct block **, struct compunit_symtab *);
|
const struct block **, struct compunit_symtab *);
|
||||||
|
|
||||||
extern int blockvector_contains_pc (const struct blockvector *bv, CORE_ADDR pc);
|
|
||||||
|
|
||||||
extern struct call_site *call_site_for_pc (struct gdbarch *gdbarch,
|
extern struct call_site *call_site_for_pc (struct gdbarch *gdbarch,
|
||||||
CORE_ADDR pc);
|
CORE_ADDR pc);
|
||||||
|
|
||||||
|
|||||||
@@ -2133,8 +2133,7 @@ recursively_find_pc_sect_compunit_symtab (struct compunit_symtab *cust,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (cust->blockvector () != nullptr
|
if (cust->blockvector () != nullptr && cust->blockvector ()->contains (pc))
|
||||||
&& blockvector_contains_pc (cust->blockvector (), pc))
|
|
||||||
return cust;
|
return cust;
|
||||||
|
|
||||||
if (cust->includes == NULL)
|
if (cust->includes == NULL)
|
||||||
|
|||||||
Reference in New Issue
Block a user