hush: improve parse_stream: does not require parsing context struct;
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 3 Apr 2009 16:49:04 +0000 (16:49 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 3 Apr 2009 16:49:04 +0000 (16:49 -0000)
commitb6e6556b31e76afdbe956886e45b1168d4a49de6
tree91e5660b6751ecd8a28661ccc8f84419cd3b13ad
parent240c255d8b349f06c94cb3afc24c85b6c38b6608
hush: improve parse_stream: does not require parsing context struct;
 cleans up on syntax errors (we used to leak memory in this case);
 much simplified interface to the rest of hush.

function                                             old     new   delta
parse_stream                                        1204    1447    +243
done_word                                            658     669     +11
static_get                                            22      28      +6
builtin_source                                        84      89      +5
parse_and_run_file                                    27      30      +3
parse_and_run_string                                  31      27      -4
builtin_eval                                          55      50      -5
hush_main                                            991     985      -6
free_pipe_list                                        39      31      -8
free_pipe                                            210     189     -21
expand_variables                                    2242    2199     -43
parse_and_run_stream                                 289     153    -136
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/7 up/down: 268/-223)           Total: 45 bytes
shell/hush.c
shell/hush_test/hush-misc/syntax_err_negate.right