summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2007-04-25 09:54:17 +0000
committerNicholas Clark <nick@ccl4.org>2007-04-25 09:54:17 +0000
commit16d8f38a2d6ab27610f67c929d18408a3acc29a9 (patch)
tree8fdfed33308dc5711738fe779105411073ae430a
parent61cc0970c5d0c4b2204859ac6d67af310deec637 (diff)
downloadperl-16d8f38a2d6ab27610f67c929d18408a3acc29a9.tar.gz
Avoid the need for 2 casts added in 31055 by using a better type for
the local variable. Add an assertion that another cast is not a data loss (and that there is no buffer overflow) p4raw-id: //depot/perl@31069
-rw-r--r--ext/Devel/Peek/Peek.xs8
-rw-r--r--utf8.c1
2 files changed, 5 insertions, 4 deletions
diff --git a/ext/Devel/Peek/Peek.xs b/ext/Devel/Peek/Peek.xs
index e1c62c3ff5..75023cd8c1 100644
--- a/ext/Devel/Peek/Peek.xs
+++ b/ext/Devel/Peek/Peek.xs
@@ -344,11 +344,11 @@ PPCODE:
SV *pv_lim_sv = perl_get_sv("Devel::Peek::pv_limit", FALSE);
const STRLEN pv_lim = pv_lim_sv ? SvIV(pv_lim_sv) : 0;
SV *dumpop = perl_get_sv("Devel::Peek::dump_ops", FALSE);
- const I32 save_dumpindent = PL_dumpindent;
+ const U16 save_dumpindent = PL_dumpindent;
PL_dumpindent = 2;
do_sv_dump(0, Perl_debug_log, sv, 0, lim,
(bool)(dumpop && SvTRUE(dumpop)), pv_lim);
- PL_dumpindent = (U16)save_dumpindent;
+ PL_dumpindent = save_dumpindent;
}
void
@@ -360,7 +360,7 @@ PPCODE:
SV *pv_lim_sv = perl_get_sv("Devel::Peek::pv_limit", FALSE);
const STRLEN pv_lim = pv_lim_sv ? SvIV(pv_lim_sv) : 0;
SV *dumpop = perl_get_sv("Devel::Peek::dump_ops", FALSE);
- const I32 save_dumpindent = PL_dumpindent;
+ const U16 save_dumpindent = PL_dumpindent;
PL_dumpindent = 2;
for (i=1; i<items; i++) {
@@ -368,7 +368,7 @@ PPCODE:
do_sv_dump(0, Perl_debug_log, ST(i), 0, lim,
(bool)(dumpop && SvTRUE(dumpop)), pv_lim);
}
- PL_dumpindent = (U16)save_dumpindent;
+ PL_dumpindent = save_dumpindent;
}
void
diff --git a/utf8.c b/utf8.c
index 3c80bd2197..b44057c40d 100644
--- a/utf8.c
+++ b/utf8.c
@@ -1726,6 +1726,7 @@ Perl_swash_fetch(pTHX_ SV *swash, const U8 *ptr, bool do_utf8)
}
PL_last_swash_hv = hv;
+ assert(klen <= sizeof(PL_last_swash_key));
PL_last_swash_klen = (U8)klen;
/* FIXME change interpvar.h? */
PL_last_swash_tmps = (U8 *) tmps;