diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-09-25 17:56:41 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-09-25 23:04:09 +0900 |
commit | 4449dcac15c64d93462babaacb6fd8bf4c5d3c6b (patch) | |
tree | 9030b2bbf135c0999ec3e5a06bcc0884e2ccb9f7 /parse.y | |
parent | dd292640bf8219cfaf8b0127880631d89ce51322 (diff) | |
download | ruby-4449dcac15c64d93462babaacb6fd8bf4c5d3c6b.tar.gz |
Reduce stack usage in `string_content`
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -5401,17 +5401,13 @@ string_content : tSTRING_CONTENT /*% %*/ /*% ripper: string_dvar!($3) %*/ } - | tSTRING_DBEG + | tSTRING_DBEG[term] { CMDARG_PUSH(0); COND_PUSH(0); - } - { /* need to backup p->lex.strterm so that a string literal `%!foo,#{ !0 },bar!` can be parsed */ - $<strterm>$ = p->lex.strterm; + $<strterm>term = p->lex.strterm; p->lex.strterm = 0; - }[term] - { $<num>$ = p->lex.state; SET_LEX_STATE(EXPR_BEG); }[state] |