This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
HTML::Parser is fixed already
[perl5.git] / perly.c
diff --git a/perly.c b/perly.c
index ac87b8e..3624ca3 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -456,7 +456,7 @@ Perl_yyparse (pTHX)
     YYPUSHSTACK;
     ps->state   = yyn;
     ps->val     = parser->yylval;
-    ps->compcv  = SvREFCNT_inc(PL_compcv);
+    ps->compcv  = (CV*)SvREFCNT_inc(PL_compcv);
     ps->savestack_ix = PL_savestack_ix;
 #ifdef DEBUGGING
     ps->name    = (const char *)(yytname[yytoken]);
@@ -555,7 +555,7 @@ Perl_yyparse (pTHX)
          number reduced by.  */
 
     ps->val     = yyval;
-    ps->compcv  = SvREFCNT_inc(PL_compcv);
+    ps->compcv  = (CV*)SvREFCNT_inc(PL_compcv);
     ps->savestack_ix = PL_savestack_ix;
 #ifdef DEBUGGING
     ps->name    = (const char *)(yytname [yyr1[yyn]]);
@@ -614,6 +614,8 @@ Perl_yyparse (pTHX)
        }
 
        YYDSYMPRINTF ("Error: discarding", yytoken, &parser->yylval);
+       if (yy_type_tab[yytoken] == toketype_opval)
+           op_free(parser->yylval.opval);
        parser->yychar = YYEMPTY;
 
     }
@@ -670,7 +672,7 @@ Perl_yyparse (pTHX)
     YYPUSHSTACK;
     ps->state   = yyn;
     ps->val     = parser->yylval;
-    ps->compcv  = SvREFCNT_inc(PL_compcv);
+    ps->compcv  = (CV*)SvREFCNT_inc(PL_compcv);
     ps->savestack_ix = PL_savestack_ix;
 #ifdef DEBUGGING
     ps->name    ="<err>";