From 926e9be5f46934b6d10222acec12d9cc94a19993 Mon Sep 17 00:00:00 2001 From: kseitz Date: Fri, 1 Mar 2002 19:03:16 +0000 Subject: [PATCH] * 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. --- gdb/gdbtk/ChangeLog | 7 +++++++ gdb/gdbtk/generic/gdbtk-register.c | 13 +++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog index bc626aa12d..213e48cdd8 100644 --- a/gdb/gdbtk/ChangeLog +++ b/gdb/gdbtk/ChangeLog @@ -1,3 +1,10 @@ +2002-03-01 Keith Seitz + + * 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 * library/srcbar.itcl (SrcBar::create_buttons): Added diff --git a/gdb/gdbtk/generic/gdbtk-register.c b/gdb/gdbtk/generic/gdbtk-register.c index 4236cc8bb2..823284412c 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)); } -- 2.11.0