* findvar.c (locate_var_value): Do not call get_frame_arch
authorUlrich Weigand <uweigand@de.ibm.com>
Thu, 21 Aug 2008 20:29:00 +0000 (20:29 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Thu, 21 Aug 2008 20:29:00 +0000 (20:29 +0000)
with a NULL frame argument.

gdb/ChangeLog
gdb/findvar.c

index 1721554..43eddfc 100644 (file)
@@ -1,5 +1,10 @@
 2008-08-21  Ulrich Weigand  <uweigand@de.ibm.com>
 
+       * findvar.c (locate_var_value): Do not call get_frame_arch
+       with a NULL frame argument.
+
+2008-08-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
        * frame.h (frame_map_regnum_to_name): Remove prototype.
        (frame_map_name_to_regnum): Remove prototype.
        * frame.c (frame_map_regnum_to_name): Remove.
index e67a666..a39c8ff 100644 (file)
@@ -660,7 +660,7 @@ address_from_register (struct type *type, int regnum, struct frame_info *frame)
 struct value *
 locate_var_value (struct symbol *var, struct frame_info *frame)
 {
-  struct gdbarch *gdbarch = get_frame_arch (frame);
+  struct gdbarch *gdbarch;
   CORE_ADDR addr = 0;
   struct type *type = SYMBOL_TYPE (var);
   struct value *lazy_value;
@@ -686,6 +686,8 @@ locate_var_value (struct symbol *var, struct frame_info *frame)
   switch (VALUE_LVAL (lazy_value))
     {
     case lval_register:
+      gdb_assert (frame);
+      gdbarch = get_frame_arch (frame);
       gdb_assert (gdbarch_register_name
                   (gdbarch, VALUE_REGNUM (lazy_value)) != NULL
                  && *gdbarch_register_name