summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorTim Bunce <Tim.Bunce@pobox.com>2002-07-15 13:14:54 +0100
committerJarkko Hietaniemi <jhi@iki.fi>2002-07-15 13:04:59 +0000
commit1d773130c7c6730a3a532a4ea9cf508b11194094 (patch)
treeb71f6a42b92091ee4f14b4cef689809b773031f0 /sv.c
parent08411240a1e5278b0232e1455d984110b1c5343b (diff)
downloadperl-1d773130c7c6730a3a532a4ea9cf508b11194094.tar.gz
Re: Core dump in perl_clone (even with 'use threads;' first) [PATCH]
Message-ID: <20020715121454.F20682@dansat.data-plan.com> p4raw-id: //depot/perl@17546
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sv.c b/sv.c
index dd44025ddb..11b53d9a9f 100644
--- a/sv.c
+++ b/sv.c
@@ -10154,6 +10154,11 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
Copy(proto_perl->Inexttype, PL_nexttype, 5, I32);
PL_nexttoke = proto_perl->Inexttoke;
+ /* XXX This is probably masking the deeper issue of why
+ * SvANY(proto_perl->Ilinestr) can be NULL at this point. For test case:
+ * http://archive.develooper.com/perl5-porters%40perl.org/msg83298.html
+ * (A little debugging with a watchpoint on it may help.)
+ */
if (SvANY(proto_perl->Ilinestr)) {
PL_linestr = sv_dup_inc(proto_perl->Ilinestr, param);
i = proto_perl->Ibufptr - SvPVX(proto_perl->Ilinestr);
@@ -10192,6 +10197,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
PL_padix_floor = proto_perl->Ipadix_floor;
PL_pad_reset_pending = proto_perl->Ipad_reset_pending;
+ /* XXX See comment on SvANY(proto_perl->Ilinestr) above */
if (SvANY(proto_perl->Ilinestr)) {
i = proto_perl->Ilast_uni - SvPVX(proto_perl->Ilinestr);
PL_last_uni = SvPVX(PL_linestr) + (i < 0 ? 0 : i);