X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly_c.diff;h=0b73880c4e4270448b8fc76eeff1c3272eff5bcd;hb=9ec58fb7ec19e41fee2f2944750a45a2a85e4a03;hp=f42a10c9efd4b19b9b58e4b875a5faa8e2f36477;hpb=c76ac1ee16c5c9591d8ffad5a0651b7f81738b68;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly_c.diff b/perly_c.diff index f42a10c..0b73880 100644 --- a/perly_c.diff +++ b/perly_c.diff @@ -28,7 +28,7 @@ + struct ysv *ysave; + New(73, ysave, 1, struct ysv); -+ SAVEDESTRUCTOR(yydestruct, ysave); ++ SAVEDESTRUCTOR_X(yydestruct, ysave); + ysave->oldyydebug = yydebug; + ysave->oldyynerrs = yynerrs; + ysave->oldyyerrflag = yyerrflag; @@ -134,7 +134,7 @@ yyaccept: ! return (0); } ---- 2524,2550 ---- +--- 2524,2569 ---- #endif if (yyssp >= yyss + yystacksize - 1) { @@ -161,4 +161,23 @@ ! retval = 1; yyaccept: ! return retval; +! } +! +! #ifdef PERL_OBJECT +! #include "XSUB.h" +! #endif +! +! static void +! yydestruct(pTHXo_ void *ptr) +! { +! struct ysv* ysave = (struct ysv*)ptr; +! if (ysave->yyss) Safefree(ysave->yyss); +! if (ysave->yyvs) Safefree(ysave->yyvs); +! yydebug = ysave->oldyydebug; +! yynerrs = ysave->oldyynerrs; +! yyerrflag = ysave->oldyyerrflag; +! yychar = ysave->oldyychar; +! yyval = ysave->oldyyval; +! yylval = ysave->oldyylval; +! Safefree(ysave); }