Branch Coverage

perl-libxml-mm.c
Criterion Covered Total %
branch 202 320 63.1


line true false branch
56 20454 0 if ( elem != NULL ) {
104 0 0 if( xmlHashSize(table) > 0 ) {
325 0 57059 if ( node == NULL ) {
330 11104 45955 if ( node->_private == NULL ) {
331 503 10601 switch ( node->type ) {
336 503 0 if (proxy != NULL) {
345 11104 0 if (proxy != NULL) {
370 235 46 if ( doc != NULL ) {
373 235 0 if ( doc->_private != NULL ) {
398 14 0 if ( node->parent == NULL ) {
405 12 6 if ( node->doc != NULL ) {
406 11 1 if ( node->doc->extSubset != (xmlDtdPtr)node
407 11 0 && node->doc->intSubset != (xmlDtdPtr)node ) {
438 31203 0 if ( node != NULL ) {
441 0 31203 if ( PmmREFCNT(node) < 0 )
443 11104 20099 if ( PmmREFCNT(node) <= 0 ) {
447 11103 1 if ( libnode != NULL ) {
448 0 11103 if ( libnode->_private != node ) {
458 10482 622 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
10482 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
10482 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
10482 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
0 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
460 10482 0 owner = PmmOWNERPO(node);
10482 0 owner = PmmOWNERPO(node);
462 10481 1 if( libnode != NULL && libnode->parent == NULL ) {
266 10215 if( libnode != NULL && libnode->parent == NULL ) {
472 622 0 else if ( libnode != NULL ) {
510 20452 12 if ( node != NULL ) {
520 9630 10822 if ( node->_private != NULL ) {
527 10822 0 if ( dfProxy != NULL ) {
528 10251 571 if ( owner != NULL ) {
551 600 19852 switch ( node->type ) {
555 73 527 if ( ((xmlDocPtr)node)->encoding != NULL ) {
580 8 0 if ( node != NULL ) {
590 3 4 retval = xmlCopyNode( node, recursive ? 1 : 2 );
624 19703 6 if ( perlnode != NULL && perlnode != &PL_sv_undef ) {
19697 6 if ( perlnode != NULL && perlnode != &PL_sv_undef ) {
630 19695 2 if ( sv_derived_from(perlnode, "XML::LibXML::Node") ) {
631 19695 0 proxy = SvPROXYNODE(perlnode);
632 19695 0 if ( proxy != NULL ) {
637 19694 1 if ( retval != NULL
638 0 19694 && ((ProxyNodePtr)retval->_private) != proxy ) {
673 0 0 if ( perlnode != NULL
674 0 0 && perlnode != &PL_sv_undef
675 0 0 && SvPROXYNODE(perlnode) != NULL ) {
0 0 && SvPROXYNODE(perlnode) != NULL ) {
676 0 0 retval = PmmOWNER( SvPROXYNODE(perlnode) );
688 0 0 if ( perlnode != NULL && perlnode != &PL_sv_undef ) {
0 0 if ( perlnode != NULL && perlnode != &PL_sv_undef ) {
689 0 0 PmmOWNER( SvPROXYNODE(perlnode)) = PmmNODE( SvPROXYNODE(extra) );
0 0 PmmOWNER( SvPROXYNODE(perlnode)) = PmmNODE( SvPROXYNODE(extra) );
690 0 0 PmmREFCNT_inc( SvPROXYNODE(extra) );
717 272 0 if ( nodetofix != NULL ) {
718 0 272 switch ( PmmNODE(nodetofix)->type ) {
730 270 2 if ( PmmOWNER(nodetofix) != NULL ) {
731 270 0 oldParent = PmmOWNERPO(nodetofix);
270 0 oldParent = PmmOWNERPO(nodetofix);
739 263 9 if( oldParent != parent ) {
742 257 6 if ( parent && parent != nodetofix ){
257 0 if ( parent && parent != nodetofix ){
751 261 2 if ( oldParent != NULL && oldParent != nodetofix )
261 0 if ( oldParent != NULL && oldParent != nodetofix )
754 249 14 if ( PmmNODE(nodetofix)->type != XML_ATTRIBUTE_NODE
755 237 12 && PmmNODE(nodetofix)->type != XML_DTD_NODE
756 8 229 && PmmNODE(nodetofix)->properties != NULL ) {
761 257 6 if ( parent == NULL || PmmNODE(nodetofix)->parent == NULL ) {
5 252 if ( parent == NULL || PmmNODE(nodetofix)->parent == NULL ) {
779 82 292 if ( list != NULL ) {
781 125 82 while ( iterator != NULL ) {
782 27 98 switch ( iterator->type ) {
795 5 93 if ( iterator->_private != NULL ) {
799 79 14 if ( iterator->type != XML_ATTRIBUTE_NODE
800 7 72 && iterator->properties != NULL ){
813 3 0 if ( node != NULL && parent != NULL ) {
3 0 if ( node != NULL && parent != NULL ) {
814 0 3 if ( node->_private != NULL ) {
831 76 0 if (proxy != NULL) {
847 76 0 if ( node != NULL ) {
850 76 0 if ( PmmREFCNT(node) <= 0 ) {
853 1 75 if ( libnode != NULL ) {
854 0 1 if (libnode->_private != NULL ) {
855 0 0 if ( libnode->_private != (void*)node ) {
880 76 0 if ( ctxt != NULL ) {
901 374 0 if ( scalar != NULL
902 374 0 && scalar != &PL_sv_undef
903 374 0 && sv_isa( scalar, "XML::LibXML::ParserContext" )
904 374 0 && SvPROXYNODE(scalar) != NULL ) {
374 0 && SvPROXYNODE(scalar) != NULL ) {
905 374 0 retval = (xmlParserCtxtPtr)PmmNODE( SvPROXYNODE(scalar) );
908 0 0 if ( scalar == NULL
909 0 0 && scalar == &PL_sv_undef ) {
912 0 0 else if ( ! sv_isa( scalar, "XML::LibXML::ParserContext" ) ) {
915 0 0 else if (SvPROXYNODE(scalar) == NULL) {
938 0 152 if (len == 0)
940 1799 136 for (i=0; i
941 1795 4 if(!string[i] || string[i] & 0x80) {
1783 12 if(!string[i] || string[i] & 0x80) {
945 136 16 if (i>=len) return xmlStrdup( string );
948 8 8 if ( charset == XML_CHAR_ENCODING_ERROR){
949 4 4 if (xmlStrcmp(encoding,(const xmlChar*)"UTF-16LE")==0) {
951 4 0 } else if (xmlStrcmp(encoding,(const xmlChar*) "UTF-16BE")==0) {
955 1 15 if ( charset == XML_CHAR_ENCODING_UTF8 ) {
959 7 8 else if ( charset == XML_CHAR_ENCODING_UTF16LE || charset == XML_CHAR_ENCODING_UTF16BE ){
4 3 else if ( charset == XML_CHAR_ENCODING_UTF16LE || charset == XML_CHAR_ENCODING_UTF16BE ){
961 12 0 if (len>=2 && (char)string[0]=='\xFE' && (char)string[1]=='\xFF') {
8 4 if (len>=2 && (char)string[0]=='\xFE' && (char)string[1]=='\xFF') {
8 0 if (len>=2 && (char)string[0]=='\xFE' && (char)string[1]=='\xFF') {
966 4 0 } else if (len>=2 && (char)string[0]=='\xFF' && (char)string[1]=='\xFE') {
0 4 } else if (len>=2 && (char)string[0]=='\xFF' && (char)string[1]=='\xFE') {
0 0 } else if (len>=2 && (char)string[0]=='\xFF' && (char)string[1]=='\xFE') {
975 0 3 else if ( charset == XML_CHAR_ENCODING_ERROR ){
979 3 0 else if ( charset == XML_CHAR_ENCODING_NONE ){
987 15 0 if ( coder != NULL ) {
991 15 0 if ( xmlCharEncInFunc( coder, out, in ) >= 0 ) {
1015 0 12 if (len==NULL) return NULL;
1017 6 6 if ( charset == XML_CHAR_ENCODING_ERROR){
1018 3 3 if (xmlStrcmp(encoding,(const xmlChar*)"UTF-16LE")==0) {
1020 3 0 } else if (xmlStrcmp(encoding,(const xmlChar*) "UTF-16BE")==0) {
1025 0 12 if ( charset == XML_CHAR_ENCODING_UTF8 ) {
1029 0 12 else if ( charset == XML_CHAR_ENCODING_ERROR ){
1032 0 12 else if ( charset == XML_CHAR_ENCODING_NONE ){
1039 12 0 if ( coder != NULL ) {
1043 12 0 if ( xmlCharEncOutFunc( coder, out, in ) >= 0 ) {
1067 72 0 if ( string != NULL ) {
1068 72 0 if( encoding != NULL ) {
1088 3703 38 if ( string != NULL ) {
1089 0 3703 if ( encoding != NULL ) {
1095 3703 0 if ( enc == 0 ) {
1102 3703 0 if ( enc == XML_CHAR_ENCODING_UTF8 ) {
1121 2 1531 SvGETMAGIC(scalar);
0 2 SvGETMAGIC(scalar);
1122 1533 0 if ( scalar != NULL && SvOK(scalar) ) {
34 1499 if ( scalar != NULL && SvOK(scalar) ) {
34 0 if ( scalar != NULL && SvOK(scalar) ) {
0 34 if ( scalar != NULL && SvOK(scalar) ) {
1124 1497 2 char * t_pv =SvPV(scalar, len);
1127 1421 78 if ( xmlStrlen(string) > 0 ) {
1131 422 999 if( !DO_UTF8(scalar) && encoding != NULL ) {
0 422 if( !DO_UTF8(scalar) && encoding != NULL ) {
72 927 if( !DO_UTF8(scalar) && encoding != NULL ) {
1138 72 0 if ( string != NULL ) {
1146 1499 0 if (string != NULL ) {
1164 12 0 if ( refnode != NULL ) {
1166 12 0 if ( real_doc != NULL && real_doc->encoding != NULL ) {
12 0 if ( real_doc != NULL && real_doc->encoding != NULL ) {
1171 0 12 if ( PmmNodeEncoding(real_doc) == XML_CHAR_ENCODING_NONE ) {
1184 0 12 if ( PmmNodeEncoding( real_doc ) == XML_CHAR_ENCODING_UTF8 ) {
1207 1443 0 if ( refnode != NULL ) {
1210 1315 128 if (real_dom != NULL && real_dom->encoding != NULL ) {
138 1177 if (real_dom != NULL && real_dom->encoding != NULL ) {
1214 138 0 if ( scalar != NULL && scalar != &PL_sv_undef ) {
138 0 if ( scalar != NULL && scalar != &PL_sv_undef ) {
1216 138 0 char * t_pv =SvPV(scalar, len);
1218 138 0 if ( t_pv && len > 0 ) {
122 16 if ( t_pv && len > 0 ) {
1222 42 80 if( !DO_UTF8(scalar) ) {
0 42 if( !DO_UTF8(scalar) ) {
1227 0 80 if ( PmmNodeEncoding(real_dom) == XML_CHAR_ENCODING_NONE ) {
1242 58 80 if (string==NULL) {