+2014-02-19 Tom Tromey <tromey@redhat.com>
+
+ * target-delegates.c: Rebuild.
+ * target.c (update_current_target): Don't inherit or default
+ to_log_command.
+ * target.h (struct target_ops) <to_log_command>: Use
+ TARGET_DEFAULT_IGNORE.
+ (target_log_command): Unconditionally delegate.
+
2014-02-19 Tom Tromey <tromey@redhat.com>
* target-delegates.c: Rebuild.
return 0;
}
+static void
+delegate_log_command (struct target_ops *self, const char *arg1)
+{
+ self = self->beneath;
+ self->to_log_command (self, arg1);
+}
+
+static void
+tdefault_log_command (struct target_ops *self, const char *arg1)
+{
+}
+
static int
delegate_can_async_p (struct target_ops *self)
{
ops->to_rcmd = delegate_rcmd;
if (ops->to_pid_to_exec_file == NULL)
ops->to_pid_to_exec_file = delegate_pid_to_exec_file;
+ if (ops->to_log_command == NULL)
+ ops->to_log_command = delegate_log_command;
if (ops->to_can_async_p == NULL)
ops->to_can_async_p = delegate_can_async_p;
if (ops->to_is_async_p == NULL)
ops->to_thread_name = tdefault_thread_name;
ops->to_rcmd = default_rcmd;
ops->to_pid_to_exec_file = tdefault_pid_to_exec_file;
+ ops->to_log_command = tdefault_log_command;
ops->to_can_async_p = find_default_can_async_p;
ops->to_is_async_p = find_default_is_async_p;
ops->to_async = tdefault_async;
/* Do not inherit to_xfer_partial. */
/* Do not inherit to_rcmd. */
/* Do not inherit to_pid_to_exec_file. */
- INHERIT (to_log_command, t);
+ /* Do not inherit to_log_command. */
INHERIT (to_stratum, t);
/* Do not inherit to_has_all_memory. */
/* Do not inherit to_has_memory. */
TARGET_DEFAULT_FUNC (default_rcmd);
char *(*to_pid_to_exec_file) (struct target_ops *, int pid)
TARGET_DEFAULT_RETURN (0);
- void (*to_log_command) (struct target_ops *, const char *);
+ void (*to_log_command) (struct target_ops *, const char *)
+ TARGET_DEFAULT_IGNORE ();
struct target_section_table *(*to_get_section_table) (struct target_ops *);
enum strata to_stratum;
int (*to_has_all_memory) (struct target_ops *);
/* Command logging facility. */
-#define target_log_command(p) \
- do \
- if (current_target.to_log_command) \
- (*current_target.to_log_command) (¤t_target, \
- p); \
- while (0)
+#define target_log_command(p) \
+ (*current_target.to_log_command) (¤t_target, p)
extern int target_core_of_thread (ptid_t ptid);