convert to_get_unwinder and to_get_tailcall_unwinder to methods

This converts to_get_unwinder and to_get_tailcall_unwinder to methods
and arranges for them to use the new delegation scheme.

This just lets us avoid having a differing style (neither new-style
nor INHERIT) of delegation in the tree.

2014-02-19  Tom Tromey  <tromey@redhat.com>

	* target.c (target_get_unwinder): Rewrite.
	(target_get_tailcall_unwinder): Rewrite.
	* record-btrace.c (record_btrace_to_get_unwinder): New function.
	(record_btrace_to_get_tailcall_unwinder): New function.
	(init_record_btrace_ops): Update.
	* target.h (struct target_ops) <to_get_unwinder,
	to_get_tailcall_unwinder>: Now function pointers.  Use
	TARGET_DEFAULT_RETURN.
This commit is contained in:
Tom Tromey 2014-01-16 13:00:07 -07:00
parent 8476dc92e4
commit ac01945bf1
5 changed files with 71 additions and 20 deletions

View file

@ -3822,13 +3822,7 @@ debug_to_prepare_to_store (struct target_ops *self, struct regcache *regcache)
const struct frame_unwind *
target_get_unwinder (void)
{
struct target_ops *t;
for (t = current_target.beneath; t != NULL; t = t->beneath)
if (t->to_get_unwinder != NULL)
return t->to_get_unwinder;
return NULL;
return current_target.to_get_unwinder (&current_target);
}
/* See target.h. */
@ -3836,13 +3830,7 @@ target_get_unwinder (void)
const struct frame_unwind *
target_get_tailcall_unwinder (void)
{
struct target_ops *t;
for (t = current_target.beneath; t != NULL; t = t->beneath)
if (t->to_get_tailcall_unwinder != NULL)
return t->to_get_tailcall_unwinder;
return NULL;
return current_target.to_get_tailcall_unwinder (&current_target);
}
/* Default implementation of to_decr_pc_after_break. */