convert to_prepare_to_store
authorTom Tromey <tromey@redhat.com>
Wed, 18 Dec 2013 16:47:18 +0000 (09:47 -0700)
committerTom Tromey <tromey@redhat.com>
Wed, 19 Feb 2014 14:47:03 +0000 (07:47 -0700)
2014-02-19  Tom Tromey  <tromey@redhat.com>

* target-delegates.c: Rebuild.
* target.c (update_current_target): Don't inherit or default
to_store.
* target.h (struct target_ops) <to_store>: Use
TARGET_DEFAULT_NORETURN.

gdb/ChangeLog
gdb/target-delegates.c
gdb/target.c
gdb/target.h

index a197e9b290d42dfd61d904bb08e4258c08aa16c1..9a2ff8cb6d3da88f486fccec42d3b2676da4b154 100644 (file)
@@ -1,3 +1,11 @@
+2014-02-19  Tom Tromey  <tromey@redhat.com>
+
+       * target-delegates.c: Rebuild.
+       * target.c (update_current_target): Don't inherit or default
+       to_store.
+       * target.h (struct target_ops) <to_store>: Use
+       TARGET_DEFAULT_NORETURN.
+
 2014-02-19  Tom Tromey  <tromey@redhat.com>
 
        * target-delegates.c: Rebuild.
index 0c30afaca3008b615adbe8c86e63c54607b7e568..3f1ec9ba022cb7b4a0df83406746d4404eeacee9 100644 (file)
@@ -73,6 +73,19 @@ tdefault_store_registers (struct target_ops *self, struct regcache *arg1, int ar
   noprocess ();
 }
 
+static void
+delegate_prepare_to_store (struct target_ops *self, struct regcache *arg1)
+{
+  self = self->beneath;
+  self->to_prepare_to_store (self, arg1);
+}
+
+static void
+tdefault_prepare_to_store (struct target_ops *self, struct regcache *arg1)
+{
+  noprocess ();
+}
+
 static int
 delegate_insert_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2)
 {
@@ -188,6 +201,8 @@ install_delegators (struct target_ops *ops)
     ops->to_wait = delegate_wait;
   if (ops->to_store_registers == NULL)
     ops->to_store_registers = delegate_store_registers;
+  if (ops->to_prepare_to_store == NULL)
+    ops->to_prepare_to_store = delegate_prepare_to_store;
   if (ops->to_insert_breakpoint == NULL)
     ops->to_insert_breakpoint = delegate_insert_breakpoint;
   if (ops->to_remove_breakpoint == NULL)
@@ -219,6 +234,7 @@ install_dummy_methods (struct target_ops *ops)
   ops->to_resume = tdefault_resume;
   ops->to_wait = tdefault_wait;
   ops->to_store_registers = tdefault_store_registers;
+  ops->to_prepare_to_store = tdefault_prepare_to_store;
   ops->to_insert_breakpoint = memory_insert_breakpoint;
   ops->to_remove_breakpoint = memory_remove_breakpoint;
   ops->to_stopped_by_watchpoint = tdefault_stopped_by_watchpoint;
index ef961e3eb146a5745d73c58aa01ee09cd5a5f65c..05b307dc800a90de2a01f6e1fd4db02686199784 100644 (file)
@@ -599,7 +599,7 @@ update_current_target (void)
       /* Do not inherit to_wait.  */
       /* Do not inherit to_fetch_registers.  */
       /* Do not inherit to_store_registers.  */
-      INHERIT (to_prepare_to_store, t);
+      /* Do not inherit to_prepare_to_store.  */
       INHERIT (deprecated_xfer_memory, t);
       INHERIT (to_files_info, t);
       /* Do not inherit to_insert_breakpoint.  */
@@ -730,9 +730,6 @@ update_current_target (void)
   de_fault (to_close,
            (void (*) (struct target_ops *))
            target_ignore);
-  de_fault (to_prepare_to_store,
-           (void (*) (struct target_ops *, struct regcache *))
-           noprocess);
   de_fault (deprecated_xfer_memory,
            (int (*) (CORE_ADDR, gdb_byte *, int, int,
                      struct mem_attrib *, struct target_ops *))
index c35b9e337fc09ad4fef893309eaecb4e6e1d335a..4b476aa4d8d95ac199f5dce86c416a908c0214c2 100644 (file)
@@ -418,7 +418,8 @@ struct target_ops
     void (*to_fetch_registers) (struct target_ops *, struct regcache *, int);
     void (*to_store_registers) (struct target_ops *, struct regcache *, int)
       TARGET_DEFAULT_NORETURN (noprocess ());
-    void (*to_prepare_to_store) (struct target_ops *, struct regcache *);
+    void (*to_prepare_to_store) (struct target_ops *, struct regcache *)
+      TARGET_DEFAULT_NORETURN (noprocess ());
 
     /* Transfer LEN bytes of memory between GDB address MYADDR and
        target address MEMADDR.  If WRITE, transfer them to the target, else