summaryrefslogtreecommitdiff
path: root/perly.y
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2012-07-14 18:45:41 -0700
committerFather Chrysostomos <sprout@cpan.org>2012-07-14 18:45:41 -0700
commitc55d2e076a02daf604c28e6725a61c1495171552 (patch)
treeec292262586d8bbfa424ce9ff04b8bb0530ddbcf /perly.y
parent09fe0e743e8130220807fdb2c6fc2817bcd6433c (diff)
downloadperl-c55d2e076a02daf604c28e6725a61c1495171552.tar.gz
perly.y: Remove use of latefree from package foo {}
It is not necessary for the op containing the sv containing the name of the package to last until the end of the block. Perl_package can free the op immediately, as the only information it needs from it it copies to the sv in PL_curstname. The version number can be treated the same way.
Diffstat (limited to 'perly.y')
-rw-r--r--perly.y9
1 files changed, 0 insertions, 9 deletions
diff --git a/perly.y b/perly.y
index c819b5b52f..b4bdb48253 100644
--- a/perly.y
+++ b/perly.y
@@ -466,15 +466,9 @@ barestmt: PLUGSTMT
}
| PACKAGE WORD WORD '{' remember
{
- int save_3_latefree = $3->op_latefree;
- $3->op_latefree = 1;
package($3);
- $3->op_latefree = save_3_latefree;
if ($2) {
- int save_2_latefree = $2->op_latefree;
- $2->op_latefree = 1;
package_version($2);
- $2->op_latefree = save_2_latefree;
}
}
stmtseq '}'
@@ -482,9 +476,6 @@ barestmt: PLUGSTMT
/* a block is a loop that happens once */
$$ = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
(OP*)NULL, block_end($5, $7), (OP*)NULL, 0);
- op_free($3);
- if ($2)
- op_free($2);
TOKEN_GETMAD($4,$$,'{');
TOKEN_GETMAD($8,$$,'}');
if (PL_parser->copline > (line_t)IVAL($4))