summaryrefslogtreecommitdiff
path: root/toke.c
diff options
context:
space:
mode:
authorAaron Crane <arc@cpan.org>2019-10-22 22:49:00 +0100
committerAaron Crane <arc@cpan.org>2019-11-04 10:32:29 +0000
commiteac79f666961bf708020663fb7e9bc1ea956d5c9 (patch)
tree77b8c7e5df11df74c9fda5451dd154a4180deda9 /toke.c
parentbe24a7d746539a2a621a5cb132727c2fa570d078 (diff)
downloadperl-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.c35
1 files changed, 13 insertions, 22 deletions
diff --git a/toke.c b/toke.c
index 5599904682..1fea6b69c5 100644
--- a/toke.c
+++ b/toke.c
@@ -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);
}