From: Alex Vandiver Date: Thu, 28 May 2009 20:27:25 +0000 (-0400) Subject: Fix [RT#66098] -- stricter checking on SvIVX exposed a lack of SvIOK check X-Git-Tag: code-review/2009-07-22~264 X-Git-Url: https://perl5.git.perl.org/perl5.git/commitdiff_plain/b8de32d59998a5999bfdf82297af4ccc75421091?hp=20a4c497f5b0005c2471e3b5ae0d1bb1744fa871 Fix [RT#66098] -- stricter checking on SvIVX exposed a lack of SvIOK check --- diff --git a/op.c b/op.c index 8851c06..7488887 100644 --- a/op.c +++ b/op.c @@ -4325,7 +4325,7 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right) ((LISTOP*)right)->op_last->op_type == OP_CONST) { SV *sv = ((SVOP*)((LISTOP*)right)->op_last)->op_sv; - if (SvIVX(sv) == 0) + if (SvIOK(sv) && SvIVX(sv) == 0) sv_setiv(sv, PL_modcount+1); } } diff --git a/t/op/split.t b/t/op/split.t index 025327f..b3a9741 100755 --- a/t/op/split.t +++ b/t/op/split.t @@ -6,7 +6,7 @@ BEGIN { require './test.pl'; } -plan tests => 135; +plan tests => 136; $FS = ':'; @@ -358,3 +358,9 @@ ok(@ary == 3 && is($s[2]," XYZ"); is(join(':',@s), join(':',@r)); } + +{ + use constant BANG => {}; + () = split m/,/, "", BANG; + ok(1); +}