/* Prologue value handling for GDB.
- Copyright 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2003-2015 Free Software Foundation, Inc.
This file is part of GDB.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
-#include "gdb_string.h"
-#include "gdb_assert.h"
#include "prologue-value.h"
#include "regcache.h"
case pvk_register:
return (a.reg == b.reg && a.k == b.k);
default:
- gdb_assert (0);
+ gdb_assert_not_reached ("unexpected prologue value kind");
}
}
struct pv_area *
make_pv_area (int base_reg, int addr_bit)
{
- struct pv_area *a = (struct pv_area *) xmalloc (sizeof (*a));
+ struct pv_area *a = XNEW (struct pv_area);
memset (a, 0, sizeof (*a));
do
{
struct area_entry *next = e->next;
+
xfree (e);
e = next;
}
This may return zero, if AREA has no entries.
And since the entries are a ring, this may return an entry that
- entirely preceeds OFFSET. This is the correct behavior: depending
+ entirely precedes OFFSET. This is the correct behavior: depending
on the sizes involved, we could still overlap such an area, with
wrap-around. */
static struct area_entry *
while (e && overlaps (area, e, offset, size))
{
struct area_entry *next = (e->next == e) ? 0 : e->next;
+
e->prev->next = e->next;
e->next->prev = e->prev;
else
{
CORE_ADDR offset = addr.k;
- struct area_entry *e = (struct area_entry *) xmalloc (sizeof (*e));
+ struct area_entry *e = XNEW (struct area_entry);
+
e->offset = offset;
e->size = size;
e->value = value;