summaryrefslogtreecommitdiff
path: root/toke.c
diff options
context:
space:
mode:
Diffstat (limited to 'toke.c')
-rw-r--r--toke.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/toke.c b/toke.c
index 975790a360..1d1855048b 100644
--- a/toke.c
+++ b/toke.c
@@ -11508,17 +11508,10 @@ Perl_parse_label(pTHX_ U32 flags)
if (PL_lex_state == LEX_KNOWNEXT) {
PL_parser->yychar = yylex();
if (PL_parser->yychar == LABEL) {
- STRLEN llen;
- char *lpv = SvPV(cSVOPx(pl_yylval.opval)->op_sv, llen);
SV *lsv;
PL_parser->yychar = YYEMPTY;
lsv = newSV_type(SVt_PV);
- SvPV_set(lsv, lpv);
- SvCUR_set(lsv, llen);
- SvLEN_set(lsv, llen+1);
- SvPOK_on(lsv);
- if (SvUTF8(cSVOPx(pl_yylval.opval)->op_sv))
- SvUTF8_on(lsv);
+ sv_copypv(lsv, cSVOPx(pl_yylval.opval)->op_sv);
return lsv;
} else {
yyunlex();