summaryrefslogtreecommitdiff
path: root/vms/perly_c.vms
diff options
context:
space:
mode:
Diffstat (limited to 'vms/perly_c.vms')
-rw-r--r--vms/perly_c.vms41
1 files changed, 23 insertions, 18 deletions
diff --git a/vms/perly_c.vms b/vms/perly_c.vms
index 8014792169..acecce7554 100644
--- a/vms/perly_c.vms
+++ b/vms/perly_c.vms
@@ -30,22 +30,7 @@ struct ysv {
YYSTYPE oldyylval;
};
-static void yydestruct(void *ptr);
-
-static void
-yydestruct(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);
-}
+static void yydestruct(pTHXo_ void *ptr);
#line 49 "perly.y"
#if 0 /* get this from perly.h instead */
@@ -1403,7 +1388,7 @@ yyparse()
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;
@@ -1679,7 +1664,7 @@ case 21:
break;
case 22:
#line 203 "perly.y"
-{ yyval.opval = scope(yyvsp[0].opval); }
+{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
break;
case 23:
#line 205 "perly.y"
@@ -2496,3 +2481,23 @@ yyabort:
yyaccept:
return retval;
}
+
+#ifdef PERL_OBJECT
+#define NO_XSLOCKS
+#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);
+}