summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark-Jason Dominus <mjd@plover.com>2001-11-06 19:43:46 -0500
committerAbhijit Menon-Sen <ams@wiw.org>2001-11-07 05:14:04 +0000
commit0ac0412a111b224c7f0c310960dde8b2a3fdad89 (patch)
tree7c759f395b620bdec40b0538b8b9219a6011786c
parent2f7e91877d1bb8a421b887cf5759dc05d0285cb9 (diff)
downloadperl-0ac0412a111b224c7f0c310960dde8b2a3fdad89.tar.gz
Re: [ID 20011106.083] $dbline[$i] == 0 generates warnings
Message-Id: <20011107054346.14428.qmail@plover.com> p4raw-id: //depot/perl@12882
-rw-r--r--gv.c1
-rw-r--r--op.c6
-rw-r--r--toke.c10
3 files changed, 14 insertions, 3 deletions
diff --git a/gv.c b/gv.c
index 53af8a513b..f0e685bf81 100644
--- a/gv.c
+++ b/gv.c
@@ -72,6 +72,7 @@ Perl_gv_fetchfile(pTHX_ const char *name)
tmpbuf = smallbuf;
else
New(603, tmpbuf, tmplen + 1, char);
+ /* This is where the debugger's %{"::_<$filename"} hash is created */
tmpbuf[0] = '_';
tmpbuf[1] = '<';
strcpy(tmpbuf + 2, name);
diff --git a/op.c b/op.c
index 55f1756440..6fbe51c3a0 100644
--- a/op.c
+++ b/op.c
@@ -3695,10 +3695,10 @@ Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o)
if (PERLDB_LINE && PL_curstash != PL_debstash) {
SV **svp = av_fetch(CopFILEAV(PL_curcop), (I32)CopLINE(cop), FALSE);
- if (svp && *svp != &PL_sv_undef && !SvIOK(*svp)) {
- (void)SvIOK_on(*svp);
+ if (svp && *svp != &PL_sv_undef ) {
+ (void)SvIOK_on(*svp);
SvIVX(*svp) = PTR2IV(cop);
- }
+ }
}
return prepend_elem(OP_LINESEQ, (OP*)cop, o);
diff --git a/toke.c b/toke.c
index 46f87dd047..ae44e89cdd 100644
--- a/toke.c
+++ b/toke.c
@@ -634,6 +634,8 @@ S_skipspace(pTHX_ register char *s)
sv_upgrade(sv, SVt_PVMG);
sv_setpvn(sv,PL_bufptr,PL_bufend-PL_bufptr);
+ (void)SvIOK_on(sv);
+ SvIVX(sv) = 0;
av_store(CopFILEAV(PL_curcop),(I32)CopLINE(PL_curcop),sv);
}
}
@@ -2469,6 +2471,8 @@ Perl_yylex(pTHX)
sv_upgrade(sv, SVt_PVMG);
sv_setsv(sv,PL_linestr);
+ (void)SvIOK_on(sv);
+ SvIVX(sv) = 0;
av_store(CopFILEAV(PL_curcop),(I32)CopLINE(PL_curcop),sv);
}
goto retry;
@@ -2552,6 +2556,8 @@ Perl_yylex(pTHX)
sv_upgrade(sv, SVt_PVMG);
sv_setsv(sv,PL_linestr);
+ (void)SvIOK_on(sv);
+ SvIVX(sv) = 0;
av_store(CopFILEAV(PL_curcop),(I32)CopLINE(PL_curcop),sv);
}
PL_bufend = SvPVX(PL_linestr) + SvCUR(PL_linestr);
@@ -6533,6 +6539,8 @@ S_scan_heredoc(pTHX_ register char *s)
sv_upgrade(sv, SVt_PVMG);
sv_setsv(sv,PL_linestr);
+ (void)SvIOK_on(sv);
+ SvIVX(sv) = 0;
av_store(CopFILEAV(PL_curcop), (I32)CopLINE(PL_curcop),sv);
}
if (*s == term && memEQ(s,PL_tokenbuf,len)) {
@@ -6883,6 +6891,8 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims)
sv_upgrade(sv, SVt_PVMG);
sv_setsv(sv,PL_linestr);
+ (void)SvIOK_on(sv);
+ SvIVX(sv) = 0;
av_store(CopFILEAV(PL_curcop), (I32)CopLINE(PL_curcop), sv);
}