This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove redundant lex_end
authorZefram <zefram@fysh.org>
Wed, 13 Oct 2010 19:33:41 +0000 (20:33 +0100)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 21 Oct 2010 12:52:45 +0000 (05:52 -0700)
The lex_end() function is redundant, because the lexer context object
is actually finalised by parser_free(), triggered by the save stack.
The lex_end() function has historically been empty, except when the
PL_doextract global was being misused to store lexer state.

embed.fnc
embed.h
global.sym
pp_ctl.c
proto.h
toke.c

index a89730c..3fc1164 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -611,8 +611,6 @@ s   |OP*    |opt_scalarhv   |NN OP* rep_op
 s      |OP*    |is_inplace_av  |NN OP* o|NULLOK OP* oright
 #endif
 Ap     |void   |leave_scope    |I32 base
-: Used in pp_ctl.c, and by Data::Alias
-EXp    |void   |lex_end
 : Used in various files
 p      |void   |lex_start      |NULLOK SV* line|NULLOK PerlIO *rsfp
 : Public lexer API
diff --git a/embed.h b/embed.h
index 53f6154..bb34039 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define is_utf8_X_extend(a)    Perl_is_utf8_X_extend(aTHX_ a)
 #define is_utf8_X_non_hangul(a)        Perl_is_utf8_X_non_hangul(aTHX_ a)
 #define is_utf8_X_prepend(a)   Perl_is_utf8_X_prepend(aTHX_ a)
-#define lex_end()              Perl_lex_end(aTHX)
 #define mod(a,b)               Perl_mod(aTHX_ a,b)
 #define op_clear(a)            Perl_op_clear(aTHX_ a)
 #define qerror(a)              Perl_qerror(aTHX_ a)
index 049e25c..cfa571f 100644 (file)
@@ -284,7 +284,6 @@ Perl_is_utf8_xdigit
 Perl_leave_scope
 Perl_lex_bufutf8
 Perl_lex_discard_to
-Perl_lex_end
 Perl_lex_grow_linestr
 Perl_lex_next_chunk
 Perl_lex_peek_unichar
index 296ded7..f4773f2 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2229,7 +2229,6 @@ PP(pp_return)
        retop = cx->blk_eval.retop;
        if (CxTRYBLOCK(cx))
            break;
-       lex_end();
        if (optype == OP_REQUIRE &&
            (MARK == SP || (gimme == G_SCALAR && !SvTRUE(*SP))) )
        {
@@ -3053,7 +3052,6 @@ Perl_sv_compile_2op(pTHX_ SV *sv, OP** startop, const char *code, PAD** padp)
 
     (*startop)->op_type = OP_NULL;
     (*startop)->op_ppaddr = PL_ppaddr[OP_NULL];
-    lex_end();
     /* XXX DAPM do this properly one year */
     *padp = MUTABLE_AV(SvREFCNT_inc_simple(PL_comppad));
     LEAVE_with_name("eval");
@@ -3241,7 +3239,6 @@ S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq)
                namesv = cx->blk_eval.old_namesv;
            }
        }
-       lex_end();
        if (yystatus != 3)
            LEAVE_with_name("eval"); /* pp_entereval knows about this LEAVE.  */
 
@@ -4005,7 +4002,6 @@ PP(pp_leaveeval)
     assert(CvDEPTH(PL_compcv) == 1);
 #endif
     CvDEPTH(PL_compcv) = 0;
-    lex_end();
 
     if (optype == OP_REQUIRE &&
        !(gimme == G_SCALAR ? SvTRUE(*SP) : SP > newsp))
diff --git a/proto.h b/proto.h
index eb9d037..51107b5 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -1784,7 +1784,6 @@ PERL_CALLCONV void        Perl_lex_discard_to(pTHX_ char* ptr)
 #define PERL_ARGS_ASSERT_LEX_DISCARD_TO        \
        assert(ptr)
 
-PERL_CALLCONV void     Perl_lex_end(pTHX);
 PERL_CALLCONV char*    Perl_lex_grow_linestr(pTHX_ STRLEN len);
 PERL_CALLCONV bool     Perl_lex_next_chunk(pTHX_ U32 flags);
 PERL_CALLCONV I32      Perl_lex_peek_unichar(pTHX_ U32 flags);
diff --git a/toke.c b/toke.c
index 68e5aee..fa1882d 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -750,17 +750,6 @@ Perl_parser_free(pTHX_  const yy_parser *parser)
 
 
 /*
- * Perl_lex_end
- * Finalizer for lexing operations.  Must be called when the parser is
- * done with the lexer.
- */
-
-void
-Perl_lex_end(pTHX)
-{
-}
-
-/*
 =for apidoc AmxU|SV *|PL_parser-E<gt>linestr
 
 Buffer scalar containing the chunk currently under consideration of the