tmps++;
if (*tmps == 'x')
value = scan_hex(++tmps, 99, &argtype);
+ else if (*tmps == 'b')
+ value = scan_bin(++tmps, 99, &argtype);
else
value = scan_oct(tmps, 99, &argtype);
XPUSHu(value);
newlen = SP - MARK;
diff = newlen - length;
- if (newlen && !AvREAL(ary)) {
- if (AvREIFY(ary))
- av_reify(ary);
- else
- assert(AvREAL(ary)); /* would leak, so croak */
- }
+ if (newlen && !AvREAL(ary) && AvREIFY(ary))
+ av_reify(ary);
if (diff < 0) { /* shrinking the area */
if (newlen) {