summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2002-03-01 19:03:17 +0000
committerKeith Seitz <keiths@redhat.com>2002-03-01 19:03:17 +0000
commita9acf4342def96d78e253a02517516a8b44845fd (patch)
treeff8bf321cf76680a2753bb6e66197378fd5ea0dd
parentb7eb9d0a54354181bcc37b34da3887d153e1b1da (diff)
downloadgdb-a9acf4342def96d78e253a02517516a8b44845fd.tar.gz
* generic/gdbtk-register.c (register_changed_p): Don't use REGISTER_BYTES.
There is no guarantee anymore that REGISTER_BYTES contains NUM_REGS+NUM_PSEUDO_REGS registers. (setup_architecture_data): Likewise.
-rw-r--r--gdb/gdbtk/ChangeLog7
-rw-r--r--gdb/gdbtk/generic/gdbtk-register.c13
2 files changed, 14 insertions, 6 deletions
diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog
index bc626aa12d7..213e48cdd85 100644
--- a/gdb/gdbtk/ChangeLog
+++ b/gdb/gdbtk/ChangeLog
@@ -1,3 +1,10 @@
+2002-03-01 Keith Seitz <keiths@redhat.com>
+
+ * generic/gdbtk-register.c (register_changed_p): Don't use REGISTER_BYTES.
+ There is no guarantee anymore that REGISTER_BYTES contains
+ NUM_REGS+NUM_PSEUDO_REGS registers.
+ (setup_architecture_data): Likewise.
+
2002-02-25 Ian Roxborough <irox@redhat.com>
* library/srcbar.itcl (SrcBar::create_buttons): Added
diff --git a/gdb/gdbtk/generic/gdbtk-register.c b/gdb/gdbtk/generic/gdbtk-register.c
index 4236cc8bb22..823284412c3 100644
--- a/gdb/gdbtk/generic/gdbtk-register.c
+++ b/gdb/gdbtk/generic/gdbtk-register.c
@@ -28,7 +28,9 @@
#include "gdbtk-cmds.h"
/* This contains the previous values of the registers, since the last call to
- gdb_changed_register_list. */
+ gdb_changed_register_list.
+
+ It is an array of (NUM_REGS+NUM_PSEUDO_REGS)*MAX_REGISTER_RAW_SIZE bytes. */
static char *old_regs = NULL;
@@ -355,13 +357,13 @@ register_changed_p (int regnum, void *argp)
if (read_relative_register_raw_bytes (regnum, raw_buffer))
return;
- if (memcmp (&old_regs[REGISTER_BYTE (regnum)], raw_buffer,
+ if (memcmp (&old_regs[regnum * MAX_REGISTER_RAW_SIZE], raw_buffer,
REGISTER_RAW_SIZE (regnum)) == 0)
return;
/* Found a changed register. Save new value and return its number. */
- memcpy (&old_regs[REGISTER_BYTE (regnum)], raw_buffer,
+ memcpy (&old_regs[regnum * MAX_REGISTER_RAW_SIZE], raw_buffer,
REGISTER_RAW_SIZE (regnum));
Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewIntObj (regnum));
@@ -370,11 +372,10 @@ register_changed_p (int regnum, void *argp)
static void
setup_architecture_data ()
{
- /* don't trust REGISTER_BYTES to be zero. */
if (old_regs != NULL)
xfree (old_regs);
- old_regs = xmalloc (REGISTER_BYTES + 1);
- memset (old_regs, 0, REGISTER_BYTES + 1);
+ old_regs = xmalloc ((NUM_REGS + NUM_PSEUDO_REGS) * MAX_REGISTER_RAW_SIZE + 1);
+ memset (old_regs, 0, sizeof (old_regs));
}