summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorChip Salzenberg <chip@atlantic.net>1996-12-19 16:11:05 +1200
committerChip Salzenberg <chip@atlantic.net>1996-12-20 11:14:00 +1200
commit178c63054ce0b6f5d9bd91ada1261d807e487123 (patch)
tree6f2e206145bb45e32c88c176bfa44093e498770a /op.c
parentff3ff8d1abe1e7138bb7e58aa6f10864e2d07fa7 (diff)
downloadperl-178c63054ce0b6f5d9bd91ada1261d807e487123.tar.gz
Fix core dump bug with anoncode
Diffstat (limited to 'op.c')
-rw-r--r--op.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/op.c b/op.c
index a7460b1ffc..56624e3759 100644
--- a/op.c
+++ b/op.c
@@ -3384,8 +3384,16 @@ OP *
ck_anoncode(op)
OP *op;
{
- PADOFFSET ix = pad_alloc(op->op_type, SVs_PADMY);
- av_store(comppad_name, ix, newSVpv("&", 1));
+ PADOFFSET ix;
+ SV* name;
+
+ name = NEWSV(1106,0);
+ sv_upgrade(name, SVt_PVNV);
+ sv_setpvn(name, "&", 1);
+ SvIVX(name) = -1;
+ SvNVX(name) = 1;
+ ix = pad_alloc(op->op_type, SVs_PADMY);
+ av_store(comppad_name, ix, name);
av_store(comppad, ix, cSVOP->op_sv);
SvPADMY_on(cSVOP->op_sv);
cSVOP->op_sv = Nullsv;