diff options
author | Tom Tromey <tromey@redhat.com> | 2013-05-30 17:36:29 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2013-05-30 17:36:29 +0000 |
commit | ac5007fd4ee52830df95bef29e4ad6a4a33d0e48 (patch) | |
tree | a17715269f78a2d3debfe21b73263e356ccfea22 /gdb/cli | |
parent | cd82eddcf152515d67367cdca3fefdfe2aa31b7f (diff) | |
download | gdb-ac5007fd4ee52830df95bef29e4ad6a4a33d0e48.zip gdb-ac5007fd4ee52830df95bef29e4ad6a4a33d0e48.tar.gz gdb-ac5007fd4ee52830df95bef29e4ad6a4a33d0e48.tar.bz2 |
fix cli-script.c
read_command_lines_1 had some (IMNSHO) spaghetti-ish code for cleanup
handling. This makes the code much simpler to understand, by
introducing an outer cleanup.
This is another case where a stylistic change for the checker is also
nice for the reader.
* cli/cli-script.c (read_command_lines_1): Use a null cleanup
for 'old_chain'. Do not check 'head' before processing
cleanups.
Diffstat (limited to 'gdb/cli')
-rw-r--r-- | gdb/cli/cli-script.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index 43fd479..d35f42f 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -1246,13 +1246,12 @@ read_command_lines_1 (char * (*read_next_line_func) (void), int parse_commands, void (*validator)(char *, void *), void *closure) { struct command_line *head, *tail, *next; - struct cleanup *old_chain; + struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); enum command_control_type ret; enum misc_command_type val; control_level = 0; head = tail = NULL; - old_chain = NULL; while (1) { @@ -1298,22 +1297,17 @@ read_command_lines_1 (char * (*read_next_line_func) (void), int parse_commands, else { head = next; - old_chain = make_cleanup_free_command_lines (&head); + make_cleanup_free_command_lines (&head); } tail = next; } dont_repeat (); - if (head) - { - if (ret != invalid_control) - { - discard_cleanups (old_chain); - } - else - do_cleanups (old_chain); - } + if (ret != invalid_control) + discard_cleanups (old_chain); + else + do_cleanups (old_chain); return head; } |