X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly.c;h=d03d3dee989d8d30a5725f8e574f3a31f1b7c006;hb=f4dd75d9918abbf789a5eca453b89168cad18ff0;hp=2e47b11aba7bd26a86ac2d21285b4177ba665ef6;hpb=ff689196a75c2757dfba08a8f95f0eb42fb81136;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly.c b/perly.c index 2e47b11..d03d3de 100644 --- a/perly.c +++ b/perly.c @@ -1386,6 +1386,9 @@ yyparse() #endif struct ysv *ysave; +#ifdef USE_ITHREADS + ENTER; /* force yydestruct() before we return */ +#endif New(73, ysave, 1, struct ysv); SAVEDESTRUCTOR_X(yydestruct, ysave); ysave->oldyydebug = yydebug; @@ -1826,7 +1829,7 @@ case 59: #line 338 "perly.y" { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a); if (strEQ(name, "BEGIN") || strEQ(name, "END") - || strEQ(name, "STOP") || strEQ(name, "INIT")) + || strEQ(name, "INIT") || strEQ(name, "CHECK")) CvSPECIAL_on(PL_compcv); yyval.opval = yyvsp[0].opval; } break; @@ -2477,6 +2480,9 @@ yyoverflow: yyabort: retval = 1; yyaccept: +#ifdef USE_ITHREADS + LEAVE; /* force yydestruct() before we return */ +#endif return retval; }