From 25e092d6d879f20e7550a209ec1899b76162846c Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Wed, 3 Aug 2016 00:17:58 -0700 Subject: Reorder parser struct for alignment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We still have a 16-bit hole, which I have noted. There’s no point in moving the two U8s near the end of the struct (lex_fakeeof and lex_flags) to fill that hole, as we would just have a bigger hole at the end. --- parser.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'parser.h') diff --git a/parser.h b/parser.h index 135051d87f..34d85db059 100644 --- a/parser.h +++ b/parser.h @@ -57,6 +57,7 @@ typedef struct yy_parser { U8 lex_dojoin; /* doing an array interpolation 1 = @{...} 2 = ->@ */ U8 expect; /* how to interpret ambiguous tokens */ + bool preambled; I32 lex_formbrack; /* bracket count at outer format level */ OP *lex_inpat; /* in pattern $) and $| are special */ OP *lex_op; /* extra info to pass back on op */ @@ -69,11 +70,10 @@ typedef struct yy_parser { I32 multi_end; /* last line of multi-line string */ UV multi_open; /* delimiter of said string */ UV multi_close; /* delimiter of said string */ - bool preambled; bool lex_re_reparsing; /* we're doing G_RE_REPARSING */ - I32 lex_allbrackets;/* (), [], {}, ?: bracket count */ U8 lex_super_state;/* lexer state to save */ U16 lex_sub_inwhat; /* "lex_inwhat" to use in sublex_push */ + I32 lex_allbrackets;/* (), [], {}, ?: bracket count */ OP *lex_sub_op; /* current op in y/// or pattern */ SV *lex_sub_repl; /* repl of s/// used in sublex_push */ LEXSHARED *lex_shared; @@ -95,6 +95,7 @@ typedef struct yy_parser { U16 in_my; /* we're compiling a "my"/"our" declaration */ U8 lex_state; /* next token is determined */ U8 error_count; /* how many compile errors so far, max 10 */ + /* 16-BIT HOLE */ HV *in_my_stash; /* declared class of this "my" declaration */ PerlIO *rsfp; /* current source file pointer */ AV *rsfp_filters; /* holds chain of active source filters */ -- cgit v1.2.1