From b8de32d59998a5999bfdf82297af4ccc75421091 Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Thu, 28 May 2009 16:27:25 -0400 Subject: [PATCH 1/1] Fix [RT#66098] -- stricter checking on SvIVX exposed a lack of SvIOK check --- op.c | 2 +- t/op/split.t | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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); +} -- 1.8.3.1