Remove user_call_depth

This changes execute_user_command to remove user_call_depth, using the
size of user_args_stack instead.  This avoids a cleanup.

ChangeLog
2017-08-03  Tom Tromey  <tom@tromey.com>

	* cli/cli-script.c (do_restore_user_call_depth): Remove.
	(execute_user_command): Remove user_call_depth; use
	user_args_stack's size instead.
This commit is contained in:
Tom Tromey 2017-04-30 21:08:31 -06:00
parent 898e0c8e87
commit ac991630ca
2 changed files with 8 additions and 15 deletions

View File

@ -1,3 +1,9 @@
2017-08-03 Tom Tromey <tom@tromey.com>
* cli/cli-script.c (do_restore_user_call_depth): Remove.
(execute_user_command): Remove user_call_depth; use
user_args_stack's size instead.
2017-08-03 Tom Tromey <tom@tromey.com>
* top.h (in_user_command): Remove.

View File

@ -372,16 +372,6 @@ execute_cmd_post_hook (struct cmd_list_element *c)
}
}
/* Execute the command in CMD. */
static void
do_restore_user_call_depth (void * call_depth)
{
int *depth = (int *) call_depth;
(*depth)--;
}
void
execute_user_command (struct cmd_list_element *c, char *args)
{
@ -389,7 +379,6 @@ execute_user_command (struct cmd_list_element *c, char *args)
struct command_line *cmdlines;
struct cleanup *old_chain;
enum command_control_type ret;
static int user_call_depth = 0;
extern unsigned int max_user_call_depth;
cmdlines = c->user_commands;
@ -399,14 +388,12 @@ execute_user_command (struct cmd_list_element *c, char *args)
scoped_user_args_level push_user_args (args);
if (++user_call_depth > max_user_call_depth)
if (user_args_stack.size () > max_user_call_depth)
error (_("Max user call depth exceeded -- command aborted."));
old_chain = make_cleanup (do_restore_user_call_depth, &user_call_depth);
/* Set the instream to 0, indicating execution of a
user-defined function. */
make_cleanup (do_restore_instream_cleanup, ui->instream);
old_chain = make_cleanup (do_restore_instream_cleanup, ui->instream);
ui->instream = NULL;
scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);