--- CBOR-XS/XS.xs 2013/11/20 16:29:02 1.24 +++ CBOR-XS/XS.xs 2013/11/22 05:54:07 1.25 @@ -768,15 +768,15 @@ WANT (len); sv = newSVpvn (dec->cur, len); dec->cur += len; + + if (ecb_expect_false (dec->stringref) + && SvCUR (sv) >= minimum_string_length (AvFILLp (dec->stringref) + 1)) + av_push (dec->stringref, SvREFCNT_inc_NN (sv)); } if (utf8) SvUTF8_on (sv); - if (ecb_expect_false (dec->stringref) - && SvCUR (sv) >= minimum_string_length (AvFILLp (dec->stringref) + 1)) - av_push (dec->stringref, SvREFCNT_inc_NN (sv)); - return sv; fail: