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.
This commit is contained in:
parent
cd82eddcf1
commit
ac5007fd4e
|
@ -1,3 +1,9 @@
|
||||||
|
2013-05-30 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* cli/cli-script.c (read_command_lines_1): Use a null cleanup
|
||||||
|
for 'old_chain'. Do not check 'head' before processing
|
||||||
|
cleanups.
|
||||||
|
|
||||||
2013-05-30 Tom Tromey <tromey@redhat.com>
|
2013-05-30 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
* mi/mi-cmd-stack.c (list_arg_or_local): Remove
|
* mi/mi-cmd-stack.c (list_arg_or_local): Remove
|
||||||
|
|
|
@ -1246,13 +1246,12 @@ read_command_lines_1 (char * (*read_next_line_func) (void), int parse_commands,
|
||||||
void (*validator)(char *, void *), void *closure)
|
void (*validator)(char *, void *), void *closure)
|
||||||
{
|
{
|
||||||
struct command_line *head, *tail, *next;
|
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 command_control_type ret;
|
||||||
enum misc_command_type val;
|
enum misc_command_type val;
|
||||||
|
|
||||||
control_level = 0;
|
control_level = 0;
|
||||||
head = tail = NULL;
|
head = tail = NULL;
|
||||||
old_chain = NULL;
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
@ -1298,22 +1297,17 @@ read_command_lines_1 (char * (*read_next_line_func) (void), int parse_commands,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
head = next;
|
head = next;
|
||||||
old_chain = make_cleanup_free_command_lines (&head);
|
make_cleanup_free_command_lines (&head);
|
||||||
}
|
}
|
||||||
tail = next;
|
tail = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
dont_repeat ();
|
dont_repeat ();
|
||||||
|
|
||||||
if (head)
|
if (ret != invalid_control)
|
||||||
{
|
discard_cleanups (old_chain);
|
||||||
if (ret != invalid_control)
|
else
|
||||||
{
|
do_cleanups (old_chain);
|
||||||
discard_cleanups (old_chain);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
do_cleanups (old_chain);
|
|
||||||
}
|
|
||||||
|
|
||||||
return head;
|
return head;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue