[svn:parrot] r39468 - trunk/compilers/imcc
chromatic at svn.parrot.org
chromatic at svn.parrot.org
Tue Jun 9 08:43:45 UTC 2009
Author: chromatic
Date: Tue Jun 9 08:43:44 2009
New Revision: 39468
URL: https://trac.parrot.org/parrot/changeset/39468
Log:
[IMCC] Plugged a memory leak of the C strings used to keep track of the names
of named parameters.
Modified:
trunk/compilers/imcc/imcc.y
trunk/compilers/imcc/imcparser.c
Modified: trunk/compilers/imcc/imcc.y
==============================================================================
--- trunk/compilers/imcc/imcc.y Tue Jun 9 08:40:49 2009 (r39467)
+++ trunk/compilers/imcc/imcc.y Tue Jun 9 08:43:44 2009 (r39468)
@@ -1679,8 +1679,8 @@
| ADV_OPTIONAL { $$ = VT_OPTIONAL; }
| ADV_OPT_FLAG { $$ = VT_OPT_FLAG; }
| ADV_NAMED { $$ = VT_NAMED; }
- | ADV_NAMED '(' STRINGC ')' { adv_named_set(interp, $3); $$ = 0; }
- | ADV_NAMED '(' USTRINGC ')' { adv_named_set_u(interp, $3); $$ = 0; }
+ | ADV_NAMED '(' STRINGC ')' { adv_named_set(interp, $3); $$ = 0; mem_sys_free($3); }
+ | ADV_NAMED '(' USTRINGC ')' { adv_named_set_u(interp, $3); $$ = 0; mem_sys_free($3); }
| UNIQUE_REG { $$ = VT_UNIQUE_REG; }
;
Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c Tue Jun 9 08:40:49 2009 (r39467)
+++ trunk/compilers/imcc/imcparser.c Tue Jun 9 08:43:44 2009 (r39468)
@@ -3979,12 +3979,12 @@
case 130:
#line 1682 "compilers/imcc/imcc.y"
- { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
+ { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 131:
#line 1683 "compilers/imcc/imcc.y"
- { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
+ { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 132:
More information about the parrot-commits
mailing list