This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Remove user_call_depth


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ac991630ca57ba6a00d0d1358786164248d140fc

commit ac991630ca57ba6a00d0d1358786164248d140fc
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Apr 30 21:08:31 2017 -0600

    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.

Diff:
---
 gdb/ChangeLog        |  6 ++++++
 gdb/cli/cli-script.c | 17 ++---------------
 2 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f7ccc82..be5fd55 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
 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.
 	* top.c (in_user_command): Remove.
 	* cli/cli-script.c (do_restore_user_call_depth)
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 527540a..36aa371 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]