2005-01-15 Andrew Cagney <cagney@gnu.org>
* exceptions.c (do_captured_command) (struct captured_command_args): Delete. (catch_command_errors): Simplify by inlining call to catch_errors.
This commit is contained in:
parent
3af1e0e300
commit
5a14cc1abc
2 changed files with 12 additions and 28 deletions
|
@ -1,5 +1,9 @@
|
|||
2005-01-15 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* exceptions.c (do_captured_command)
|
||||
(struct captured_command_args): Delete.
|
||||
(catch_command_errors): Simplify by inlining call to catch_errors.
|
||||
|
||||
* exceptions.c (struct catcher): Delete field print_message.
|
||||
(catcher_init): Delete print_message parameter.
|
||||
(catch_exception, catch_exceptions_with_msg, catch_errors): Update.
|
||||
|
|
|
@ -515,36 +515,16 @@ catch_errors (catch_errors_ftype *func, void *func_args, char *errstring,
|
|||
return val;
|
||||
}
|
||||
|
||||
struct captured_command_args
|
||||
{
|
||||
catch_command_errors_ftype *command;
|
||||
char *arg;
|
||||
int from_tty;
|
||||
};
|
||||
|
||||
static int
|
||||
do_captured_command (void *data)
|
||||
{
|
||||
struct captured_command_args *context = data;
|
||||
context->command (context->arg, context->from_tty);
|
||||
/* FIXME: cagney/1999-11-07: Technically this do_cleanups() call
|
||||
isn't needed. Instead an assertion check could be made that
|
||||
simply confirmed that the called function correctly cleaned up
|
||||
after itself. Unfortunately, old code (prior to 1999-11-04) in
|
||||
main.c was calling SET_TOP_LEVEL(), calling the command function,
|
||||
and then *always* calling do_cleanups(). For the moment we
|
||||
remain ``bug compatible'' with that old code.. */
|
||||
do_cleanups (ALL_CLEANUPS);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
catch_command_errors (catch_command_errors_ftype * command,
|
||||
char *arg, int from_tty, return_mask mask)
|
||||
{
|
||||
struct captured_command_args args;
|
||||
args.command = command;
|
||||
args.arg = arg;
|
||||
args.from_tty = from_tty;
|
||||
return catch_errors (do_captured_command, &args, "", mask);
|
||||
volatile struct exception e;
|
||||
SIGJMP_BUF *catch = catcher_init (uiout, NULL, &e, mask);
|
||||
for (SIGSETJMP ((*catch)); catcher_state_machine (CATCH_ITER);)
|
||||
command (arg, from_tty);
|
||||
print_any_exception (gdb_stderr, NULL, e);
|
||||
if (e.reason < 0)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue