Branch Coverage

blib/lib/SWF/Element.pm
Criterion Covered Total %
branch 116 634 18.3


line true false branch
21 2 32 if @_
27 0 0 unless ref $source
29 0 0 ($f = $f == 0 || !ref($_)) ? :
39 0 0 if $@
55 15 6 if ref $param[0] eq 'ARRAY'
57 0 21 if (@param == 0) { }
0 21 elsif (@param == 1) { }
83 0 9 if (not $self->element_type($key) =~ /^\$(.*)$/) { }
85 0 0 if $d
88 0 9 if $d
104 0 0 if ($self->element_type($key) =~ /^\$/) { }
0 0 elsif ($self->$key->defined) { }
106 0 0 unless $p =~ /^[-\d.]+$/
107 0 0 if defined $self->$key
146 56 29 if (not $classname->element_type($key) =~ /^\$(.*)$/) { }
156 37 0 unless defined &{"${classname}::${u}pack";}
157 36 1 unless defined &{"${classname}::${u}unpack";}
167 50 113 @_ % 2 ? :
175 168 25 $_ ? :
182 213 183 if (not $v =~ /^\$/) { }
186 11 34 if (@_) { }
188 0 11 if (UNIVERSAL::isa($p, $type) or not defined $p) { }
191 11 0 unless defined $$self[$base1]
195 19 15 unless defined $$self[$base1]
203 124 74 if @_ >= 2
225 0 1 if (defined $set)
471 0 10 if @_
477 0 0 unless ref $self
484 8 0 if (not ref $newval) { }
0 0 elsif (eval { do { $newval->isa('SWF::Element::Scalar') } }) { }
563 0 9 if @_
570 2 0 if ref $param[0] eq 'ARRAY' and ref $param[0][0]
573 0 10 if (UNIVERSAL::isa($p, ref $element) or not defined $p) { }
10 0 elsif (ref $p eq 'ARRAY') { }
588 0 0 unless ref $self
610 1 9 if $self->is_last($element)
641 0 0 unless ref $element eq '' or ref $element eq 'ARRAY'
643 0 0 unless ref $new
661 31 2 if ($newelement)
665 9 24 if $last
666 6 27 if $is_last
716 0 0 if $_[1]->tag_name eq 'End'
729 0 0 if (ref $_[0] eq 'ARRAY') { }
739 0 0 unless ref $self
749 0 0 $i + 7 > $#$self ? :
808 0 2 if ($count > 254) { }
822 0 2 if $count == 255
853 0 0 if ref $param[0] eq 'ARRAY'
856 0 0 if (UNIVERSAL::isa($p, ref $element) or not defined $p) { }
0 0 elsif (ref $p eq '') { }
904 0 1 if ($self->ScaleX != 1 or $self->ScaleY != 1) { }
910 0 1 if ($self->RotateSkew0 != 0 or $self->RotateSkew1 != 0) { }
924 0 1 if ($hasscale = $stream->get_bits(1)) { }
933 0 1 if ($hasrotate = $stream->get_bits(1)) { }
959 0 0 unless defined $yscale
1005 0 0 if (grep defined($_), @add) { }
1011 0 0 if (grep defined($_), @mult) { }
1017 0 0 if @add or @mult
1034 0 0 if ($hasMult)
1039 0 0 if ($hasAdd)
1064 0 0 if (ref $newval) { }
1065 0 0 if ($newval->isa('Data::TemporaryBag')) { }
0 0 elsif ($newval->isa('SWF::Element::BinData')) { }
1073 0 0 if defined $newval
1118 0 0 $len > 1024 ? :
1128 0 0 unless (ref $file or $file =~ /^\*[\w:]+$/)
1130 0 0 unless open F, "> $file"
1145 0 0 unless (ref $file or $file =~ /^\*[\w:]+$/)
1147 0 0 unless open F, $file
1235 1 0 if ($style == 0) { }
0 0 elsif ($style == 16 or $style == 18) { }
0 0 elsif ($style >= 64 or $style <= 67) { }
1249 1 0 if ($style == 0) { }
0 0 elsif ($style == 16 or $style == 18) { }
0 0 elsif ($style >= 64 or $style <= 67) { }
1328 1 0 if ($fillidx > 0) { }
1334 0 1 if ($lineidx > 0) { }
1363 8 2 if ($stream->get_bits(1)) { }
1365 0 8 if ($stream->get_bits(1)) { }
1376 1 1 if ($flags == 0) { }
1394 0 9 if $SWF::Element::SHAPERECORD1::AUTOLOAD =~ /::DESTROY$/
1396 0 9 unless $SWF::Element::SHAPERECORD1::AUTOLOAD =~ /::([A-Z]\w*)$/
1401 9 16 if $subclass->element_type($name)
1403 0 9 if $class eq ref $self
1419 0 0 if defined $self->$i
1423 0 0 if $flags & 1
1424 0 0 if $flags & 2
1425 0 0 if $flags & 4
1426 0 0 if $flags & 8
1432 0 0 if ($flags & 1)
1437 0 0 if ($flags & 2)
1440 0 0 if ($flags & 4)
1443 0 0 if ($flags & 8)
1458 2 2 if defined $self->$i
1461 0 1 if @{$self->FillStyles;} > 0 or @{$self->LineStyles;} > 0
1463 1 0 if $flags & 1
1464 1 0 if $flags & 2
1465 0 1 if $flags & 4
1466 0 1 if $flags & 8
1467 0 1 if ($flags & 16)
1471 0 0 if ($fillidx > 0) { }
1477 0 0 if ($lineidx > 0) { }
1491 1 0 if ($flags & 1)
1496 1 0 if ($flags & 2)
1499 0 1 if ($flags & 4)
1502 0 1 if ($flags & 8)
1505 0 1 if ($flags & 16)
1520 0 0 if ($stream->get_bits(1)) { }
1524 0 0 if ($stream->get_bits(1)) { }
1543 0 0 if $nbits < 2
1545 0 0 if ($dx == 0) { }
0 0 elsif ($dy == 0) { }
1580 0 8 if $nbits < 2
1603 6 6 if (defined $tag) { }
1611 4 8 if %headerdata
1623 6 13 if defined $len
1640 0 0 if $length == 63
1680 37 71 if ($v eq 'ID' or $v eq 'Depth') { }
33 38 elsif ($v =~ /^\$./) { }
1690 69 1 unless (defined &{"${tag_package}::lookahead_$k";})
2094 4 2 if $length > 0
2097 0 6 if ($read < $length) { }
0 6 elsif ($read > $length) { }
2111 1 5 if ($len >= 63 or $self->is_tagtype('AlwaysLongHeader')) { }
2144 0 0 $tagname[$_[1]] ? :
2213 0 0 if ($fillidx > 0)
2217 0 0 if ($lineidx > 0)
2241 0 0 if ($style == 0) { }
0 0 elsif ($style == 16 or $style == 18) { }
0 0 elsif ($style >= 64 or $style <= 67) { }
2258 0 0 if ($style == 0) { }
0 0 elsif ($style == 16 or $style == 18) { }
0 0 elsif ($style <= 64 or $style <= 67) { }
2371 0 0 if ($self->BitmapFormat == 3)
2387 0 0 if $self->BitmapFormat == 3
2423 0 0 if $self->ButtonStates == 0
2433 0 0 if $self->ButtonStates == 0
2452 0 0 if $self->ButtonStates == 0
2460 0 0 if $self->ButtonStates == 0
2476 0 0 if $offset
2489 0 0 if @$actions > 0
2552 0 0 if ($self->$bsc)
2567 0 0 if $self->$bsc
2623 0 0 if (($glyphcount + 1) * 2 + $offset[-1] >= 65536) { }
2641 0 0 $wideoffset ? :
2645 0 0 $wideoffset ? :
2652 0 0 if $pos > $offset
2653 0 0 if $pos < $offset
2660 0 0 if $pos > $offset
2661 0 0 if $pos < $offset
2678 0 0 if ($glyphcount > 0)
2682 0 0 if ($flag & 128)
2702 0 0 if ($glyphcount > 0)
2703 0 0 if $self->GlyphShapeTable->pack($tempstream)
2704 0 0 if $self->CodeTable->pack($tempstream, $self->FontFlagsWideCodes)
2706 0 0 if (defined $self->FontAscent)
2735 0 0 if ($element > 255)
2740 0 0 if ($widecode) { }
2755 0 0 if ($widecode) { }
2812 0 0 if @_
2819 0 0 $widecode ? :
2830 0 0 $widecode ? :
2845 0 0 if (@param == 0) { }
0 0 elsif (@param == 1) { }
2849 0 0 unless exists $$self{$k}
2855 0 0 unless $key =~ /^\d+-\d+$/
2891 0 0 if $widecode
2902 0 0 if $self->CodeTable->pack($substream)
2928 0 0 if $widecode
2959 0 0 if $a < 0
2960 0 0 if $g > $nglyphmax
2961 0 0 if $a > $nadvancemax
2987 0 0 if $self->is_last($element)
3002 0 0 if ($flags == 0)
3005 0 0 if $flags & 8
3006 0 0 if $flags & 4
3007 0 0 if $flags & 1
3008 0 0 if $flags & 2
3009 0 0 if $flags & 8
3018 0 0 if $self->FontID->defined or defined $self->TextHeight
3019 0 0 if $self->TextColor->defined
3020 0 0 if defined $self->XOffset
3021 0 0 if defined $self->YOffset
3024 0 0 if $flags & 8
3025 0 0 if $flags & 4
3026 0 0 if $flags & 1
3027 0 0 if $flags & 2
3028 0 0 if $flags & 8
3072 0 0 if $self->FontID->defined or defined $self->TextHeight
3073 0 0 if $self->TextColor->defined
3074 0 0 if defined $self->XOffset
3075 0 0 if defined $self->YOffset
3078 0 0 if $flags & 8
3079 0 0 if $flags & 4
3080 0 0 if $flags & 1
3081 0 0 if $flags & 2
3082 0 0 if $flags & 8
3097 0 0 if ($flag & 1)
3101 0 0 if $flag & 4
3102 0 0 if $flag & 2
3104 0 0 if ($flag & 8192)
3111 0 0 if $flag & 128
3132 0 0 if ($flag & 1)
3136 0 0 if $flag & 4
3137 0 0 if $flag & 2
3138 0 0 if ($flag & 8192)
3145 0 0 if $flag & 128
3166 0 0 if $flags & 1
3167 0 0 if $flags & 2
3168 0 0 if $flags & 4
3169 0 0 if $flags & 8
3181 0 0 if $flags & 1
3182 0 0 if $flags & 2
3183 0 0 if $flags & 4
3184 0 0 if $flags & 8
3246 0 0 if $self->Length == 6
3254 0 0 if $self->StreamSoundCompression == 2 and defined $self->LatencySeek
3300 0 0 if (ref $p eq 'CODE' and not defined $callback) { }
0 0 elsif (lc $p ne 'callback' or ref $callback ne 'CODE') { }
3335 0 0 unless ($tag->is_tagtype('ValidInSprite'))
3358 0 0 if ($stream->tell < $start + $self->Length)
3369 0 0 if $self->ColorTransform->defined
3381 1 0 if $flag & 2
3382 1 0 if $flag & 4
3383 0 1 if $flag & 8
3384 0 1 if $flag & 16
3385 0 1 if $flag & 32
3386 0 1 if $flag & 64
3387 0 1 if ($flag & 128)
3389 0 0 if ($stream->Version >= 6) { }
3411 1 0 if $flag & 2
3412 1 0 if $flag & 4
3413 0 1 if $flag & 8
3414 0 1 if $flag & 16
3415 0 1 if $flag & 32
3416 0 1 if $flag & 64
3417 0 1 if ($flag & 128)
3423 0 0 if ($stream->Version >= 6) { }
3435 0 0 if $self->PlaceFlagHasCharacter
3480 0 0 if $self->Password->defined
3491 0 1 if ($self->Length > length($self->Name->value) + 1)
3500 0 1 if $self->NamedAnchorFlag
3600 0 0 ref $headerdata[0] eq 'ARRAY' ? :
3604 0 0 if (defined $tag and not $tag =~ /^\d+$/)
3605 0 0 unless $tag =~ /^Action/
3607 0 0 unless defined $tag1
3613 0 0 if (defined $tag)
3618 0 0 if %headerdata
3626 0 0 if ref $param[0] eq 'ARRAY'
3629 0 0 if (defined $param{'Tag'})
3631 0 0 unless ($tag =~ /^\d+$/)
3632 0 0 unless $tag =~ /^Action/
3634 0 0 unless defined $tag1
3648 0 0 if (not $name and $num >= 128)
3651 0 0 if ($num >= 128) { }
3663 0 0 if ($self->Tag >= 128)
3682 0 0 if ($self->Tag >= 128)
3709 7 13 defined $tagisa ? :
3728 12 19 if (not $classname->element_type($key) =~ /^\$(.*)$/) { }
3739 13 7 if ($tagisa eq 'ACTIONRECORD')
3806 0 0 $tag ? :
3843 0 0 if (defined $data) { }
3844 0 0 if ($type eq 'Type')
3849 0 0 unless $class->can('new')
3855 0 0 if defined $data
3866 0 0 unless $val =~ /^-?[.\d]/
3886 0 0 if $type > $#actiondata_types
3959 0 0 exists $prop_num{$data} ? :
3967 0 0 exists $num_prop{$data} ? :
4029 0 0 if ((my $v = $self->value) >= 256) { }
4041 0 0 $type == 8 ? :
4076 0 0 if ($value eq 'NaN') { }
0 0 elsif ($value eq 'Infinity') { }
0 0 elsif ($value eq '-Infinity') { }
4084 0 0 if $BE
4097 0 0 if (($data & $INF) eq $INF and ($data & $MANTISSA) ne "\000\000\000\000\000\000\000\000") { }
0 0 elsif ($data eq $INF) { }
0 0 elsif ($data eq $NINF) { }
4104 0 0 if $BE
4121 0 0 if ($stream->Version >= 6) { }
4126 0 0 if $flag == 0
4129 0 0 if $self->ClipEventKeyPress
4132 0 0 if $remain > 0
4139 0 0 if ($stream->Version >= 6) { }
4146 0 0 if $self->ClipEventKeyPress
4175 0 0 if $$self[-1]->Tag != 0
4184 0 0 if $element->LocalLabel
4194 0 0 unless defined $labels{$label1}
4199 0 0 if ($length >= 2 and $tell % 1024 == 1023) { }
4233 0 0 if not defined $len and $element->Tag == 0
4256 0 0 unless ($l)
4273 0 0 if ($skip =~ /^[^\d]/) { }
4289 0 0 if ($skip =~ /^[^\d]/) { }
4307 0 0 if ($offset < 0) { }
4318 0 0 if ($dst - $set == $offset)
4320 0 0 unless ($l)
4336 0 0 if ($offset =~ /^[^\d\-]/) { }
4368 0 0 if ($offset =~ /^\D/) { }
4387 0 0 if ($offset =~ /^\D/) { }
4412 0 0 if ($offset =~ /^\D/) { }
4468 0 0 if defined $self->CatchRegister
4469 0 0 if $finallylabel and $finallylabel ne $catchlabel or not $finallylabel and $self->FinallySize != 0
4470 0 0 if $catchlabel and $catchlabel ne $trylabel or not $catchlabel and $self->CatchSize != 0
4478 0 0 if ($offset =~ /^\D/) { }
4487 0 0 if ($flags & 4) { }
4501 0 0 if $flags & 1
4503 0 0 if $flags & 2
4504 0 0 if ($flags & 4) { }
4519 0 0 if not defined $offset or $offset <= 0
4529 0 0 if ($dst - $set == $offset)
4531 0 0 unless ($l)
4550 0 0 if $element eq $$self[0]
4553 0 0 if $$dst[0] < $count
4573 0 0 if $offset < 0
4586 0 0 if $offset < 0
4600 0 0 if $offset < 0
4615 0 0 if $offset < 0