diff options
author | Aaron Crane <arc@cpan.org> | 2019-10-22 22:49:00 +0100 |
---|---|---|
committer | Aaron Crane <arc@cpan.org> | 2019-11-04 10:32:29 +0000 |
commit | eac79f666961bf708020663fb7e9bc1ea956d5c9 (patch) | |
tree | 77b8c7e5df11df74c9fda5451dd154a4180deda9 /toke.c | |
parent | be24a7d746539a2a621a5cb132727c2fa570d078 (diff) | |
download | perl-eac79f666961bf708020663fb7e9bc1ea956d5c9.tar.gz |
toke.c: stop passing around several needless local variables
I introduced these parameters as part of mechanically refactoring goto-heavy
logic into subroutines. However, they aren't actually needed through most of
the code. Even in the recursive case (in which yyl_try() or one of its
callees will call itself), we can reset the variables to zero.
Diffstat (limited to 'toke.c')
-rw-r--r-- | toke.c | 35 |
1 files changed, 13 insertions, 22 deletions
@@ -6762,15 +6762,12 @@ yyl_my(pTHX_ char *s, I32 my) OPERATOR(MY); } -static int yyl_try(pTHX_ char, char*, STRLEN, I32, GV*, GV**, U8, U32, const bool); +static int yyl_try(pTHX_ char, char*, STRLEN, U8, const bool); -#define RETRY() yyl_try(aTHX_ 0, s, len, orig_keyword, gv, gvp, \ - formbrack, fake_eof, saw_infix_sigil) +#define RETRY() yyl_try(aTHX_ 0, s, len, 0, 0) static int -yyl_eol(pTHX_ char *s, STRLEN len, - I32 orig_keyword, GV *gv, GV **gvp, - U8 formbrack, U32 fake_eof, const bool saw_infix_sigil) +yyl_eol(pTHX_ char *s, STRLEN len) { if (PL_lex_state != LEX_NORMAL || (PL_in_eval && !PL_rsfp && !PL_parser->filtered)) @@ -6814,9 +6811,7 @@ yyl_eol(pTHX_ char *s, STRLEN len, } static int -yyl_fake_eof(pTHX_ U32 fake_eof, bool bof, char *s, STRLEN len, - I32 orig_keyword, GV *gv, GV **gvp, - U8 formbrack, const bool saw_infix_sigil) +yyl_fake_eof(pTHX_ U32 fake_eof, bool bof, char *s, STRLEN len) { char *d; @@ -7188,11 +7183,11 @@ yyl_strictwarn_bareword(pTHX_ const char lastchar) static int yyl_try(pTHX_ char initial_state, char *s, STRLEN len, - I32 orig_keyword, GV *gv, GV **gvp, - U8 formbrack, U32 fake_eof, const bool saw_infix_sigil) + U8 formbrack, const bool saw_infix_sigil) { char *d; bool bof = FALSE; + GV *gv = NULL, **gvp = NULL; switch (initial_state) { case '}': goto rightbracket; @@ -7207,8 +7202,7 @@ yyl_try(pTHX_ char initial_state, char *s, STRLEN len, case 4: case 26: /* emulate EOF on ^D or ^Z */ - return yyl_fake_eof(aTHX_ LEX_FAKE_EOF, FALSE, s, len, - orig_keyword, gv, gvp, formbrack, saw_infix_sigil); + return yyl_fake_eof(aTHX_ LEX_FAKE_EOF, FALSE, s, len); case 0: if ((!PL_rsfp || PL_lex_inwhat) @@ -7309,8 +7303,7 @@ yyl_try(pTHX_ char initial_state, char *s, STRLEN len, update_debugger_info(PL_linestr, NULL, 0); return RETRY(); } - return yyl_fake_eof(aTHX_ 0, cBOOL(PL_rsfp), s, len, - orig_keyword, gv, gvp, formbrack, saw_infix_sigil); + return yyl_fake_eof(aTHX_ 0, cBOOL(PL_rsfp), s, len); case '\r': #ifdef PERL_STRICT_CR @@ -7324,8 +7317,7 @@ yyl_try(pTHX_ char initial_state, char *s, STRLEN len, case '#': case '\n': - return yyl_eol(aTHX_ s, len, orig_keyword, gv, gvp, - formbrack, fake_eof, saw_infix_sigil); + return yyl_eol(aTHX_ s, len); case '-': return yyl_hyphen(aTHX_ s); @@ -7665,8 +7657,8 @@ yyl_try(pTHX_ char initial_state, char *s, STRLEN len, CV *cv = NULL; PADOFFSET off = 0; OP *rv2cv_op = NULL; + I32 orig_keyword = 0; - orig_keyword = 0; gv = NULL; gvp = NULL; @@ -8085,8 +8077,7 @@ yyl_try(pTHX_ char initial_state, char *s, STRLEN len, case KEY___END__: if (PL_rsfp && (!PL_in_eval || PL_tokenbuf[2] == 'D')) yyl_data_handle(aTHX); - return yyl_fake_eof(aTHX_ LEX_FAKE_EOF, bof, s, len, - orig_keyword, gv, gvp, formbrack, saw_infix_sigil); + return yyl_fake_eof(aTHX_ LEX_FAKE_EOF, bof, s, len); case KEY___SUB__: FUN0OP(CvCLONE(PL_compcv) @@ -9284,7 +9275,7 @@ Perl_yylex(pTHX) assert(PL_lex_formbrack); s = scan_formline(PL_bufptr); if (!PL_lex_formbrack) { - return yyl_try(aTHX_ '}', s, 0, 0, NULL, NULL, 1, 0, saw_infix_sigil); + return yyl_try(aTHX_ '}', s, 0, 1, saw_infix_sigil); } PL_bufptr = s; return yylex(); @@ -9301,7 +9292,7 @@ Perl_yylex(pTHX) return yyl_sigvar(aTHX_ s); } - return yyl_try(aTHX_ 0, s, 0, 0, NULL, NULL, 0, 0, saw_infix_sigil); + return yyl_try(aTHX_ 0, s, 0, 0, saw_infix_sigil); } |