From cf17c188f5ab09846da88d05da7357c9846375b0 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Thu, 2 May 2002 01:38:27 +0000 Subject: [PATCH] Yank previous change - set current arch to NULL. --- gdb/ChangeLog | 6 ++++++ gdb/gdbarch.c | 35 ++++++++++++++--------------------- gdb/gdbarch.sh | 35 ++++++++++++++--------------------- 3 files changed, 34 insertions(+), 42 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8a235ddc936..89792d49bc2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2002-05-02 Andrew Cagney + + * gdbarch.sh (gdbarch_update_p): Revert 2002-05-02 Andrew Cagney + change. + * gdbarch.c: Regenerate. + 2002-05-02 Andrew Cagney * gdbarch.sh (gdbarch_update_p): Swap out the old architecture diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index ff5072d5894..f7248fc75fe 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -4887,7 +4887,6 @@ int gdbarch_update_p (struct gdbarch_info info) { struct gdbarch *new_gdbarch; - struct gdbarch *old_gdbarch; struct gdbarch_registration *rego; /* Fill in missing parts of the INFO struct using a number of @@ -4956,40 +4955,30 @@ gdbarch_update_p (struct gdbarch_info info) return 0; } - /* Swap the data belonging to the old target out. This stops the - ->init() function trying to refer to the previous architecture. */ - swapout_gdbarch_swap (current_gdbarch); - init_gdbarch_swap (current_gdbarch); - old_gdbarch = current_gdbarch; - current_gdbarch = NULL; - /* Ask the target for a replacement architecture. */ new_gdbarch = rego->init (info, rego->arches); - /* Did the target like it? No. Reject the change and revert to the - old architecture. */ + /* Did the target like it? No. Reject the change. */ if (new_gdbarch == NULL) { if (gdbarch_debug) fprintf_unfiltered (gdb_stdlog, "gdbarch_update: Target rejected architecture\n"); - swapin_gdbarch_swap (old_gdbarch); - current_gdbarch = old_gdbarch; return 0; } - /* Did the architecture change? No. Oops, put the old architecture - back. */ - if (old_gdbarch == new_gdbarch) + /* Did the architecture change? No. Do nothing. */ + if (current_gdbarch == new_gdbarch) { if (gdbarch_debug) fprintf_unfiltered (gdb_stdlog, "gdbarch_update: Architecture 0x%08lx (%s) unchanged\n", (long) new_gdbarch, new_gdbarch->bfd_arch_info->printable_name); - swapin_gdbarch_swap (old_gdbarch); - current_gdbarch = old_gdbarch; return 1; } + /* Swap all data belonging to the old target out */ + swapout_gdbarch_swap (current_gdbarch); + /* Is this a pre-existing architecture? Yes. Move it to the front of the list of architectures (keeping the list sorted Most Recently Used) and then copy it in. */ @@ -5046,10 +5035,14 @@ gdbarch_update_p (struct gdbarch_info info) new_gdbarch->dump_tdep = rego->dump_tdep; verify_gdbarch (new_gdbarch); - /* Initialize the per-architecture data-pointers and swap areas for - all parties that registered an interest in this architecture. - CURRENT_GDBARCH must be updated before these modules are called. - The swap area's will have already been initialized to zero. */ + /* Initialize the per-architecture memory (swap) areas. + CURRENT_GDBARCH must be update before these modules are + called. */ + init_gdbarch_swap (new_gdbarch); + + /* Initialize the per-architecture data-pointer of all parties that + registered an interest in this architecture. CURRENT_GDBARCH + must be updated before these modules are called. */ init_gdbarch_data (new_gdbarch); architecture_changed_event (); diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index f99d29ab812..e1442f312ac 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -2079,7 +2079,6 @@ int gdbarch_update_p (struct gdbarch_info info) { struct gdbarch *new_gdbarch; - struct gdbarch *old_gdbarch; struct gdbarch_registration *rego; /* Fill in missing parts of the INFO struct using a number of @@ -2148,40 +2147,30 @@ gdbarch_update_p (struct gdbarch_info info) return 0; } - /* Swap the data belonging to the old target out. This stops the - ->init() function trying to refer to the previous architecture. */ - swapout_gdbarch_swap (current_gdbarch); - init_gdbarch_swap (current_gdbarch); - old_gdbarch = current_gdbarch; - current_gdbarch = NULL; - /* Ask the target for a replacement architecture. */ new_gdbarch = rego->init (info, rego->arches); - /* Did the target like it? No. Reject the change and revert to the - old architecture. */ + /* Did the target like it? No. Reject the change. */ if (new_gdbarch == NULL) { if (gdbarch_debug) fprintf_unfiltered (gdb_stdlog, "gdbarch_update: Target rejected architecture\\n"); - swapin_gdbarch_swap (old_gdbarch); - current_gdbarch = old_gdbarch; return 0; } - /* Did the architecture change? No. Oops, put the old architecture - back. */ - if (old_gdbarch == new_gdbarch) + /* Did the architecture change? No. Do nothing. */ + if (current_gdbarch == new_gdbarch) { if (gdbarch_debug) fprintf_unfiltered (gdb_stdlog, "gdbarch_update: Architecture 0x%08lx (%s) unchanged\\n", (long) new_gdbarch, new_gdbarch->bfd_arch_info->printable_name); - swapin_gdbarch_swap (old_gdbarch); - current_gdbarch = old_gdbarch; return 1; } + /* Swap all data belonging to the old target out */ + swapout_gdbarch_swap (current_gdbarch); + /* Is this a pre-existing architecture? Yes. Move it to the front of the list of architectures (keeping the list sorted Most Recently Used) and then copy it in. */ @@ -2238,10 +2227,14 @@ gdbarch_update_p (struct gdbarch_info info) new_gdbarch->dump_tdep = rego->dump_tdep; verify_gdbarch (new_gdbarch); - /* Initialize the per-architecture data-pointers and swap areas for - all parties that registered an interest in this architecture. - CURRENT_GDBARCH must be updated before these modules are called. - The swap area's will have already been initialized to zero. */ + /* Initialize the per-architecture memory (swap) areas. + CURRENT_GDBARCH must be update before these modules are + called. */ + init_gdbarch_swap (new_gdbarch); + + /* Initialize the per-architecture data-pointer of all parties that + registered an interest in this architecture. CURRENT_GDBARCH + must be updated before these modules are called. */ init_gdbarch_data (new_gdbarch); architecture_changed_event (); -- 2.30.2