Branch Coverage

perl-libxml-mm.c
Criterion Covered Total %
branch 199 316 62.9


line true false branch
56 20442 0 if ( elem != NULL ) {
104 0 0 if( xmlHashSize(table) > 0 ) {
325 0 57041 if ( node == NULL ) {
330 11089 45952 if ( node->_private == NULL ) {
331 500 10589 switch ( node->type ) {
336 500 0 if (proxy != NULL) {
345 11089 0 if (proxy != NULL) {
370 229 46 if ( doc != NULL ) {
373 229 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 31176 0 if ( node != NULL ) {
441 0 31176 if ( PmmREFCNT(node) < 0 )
443 11089 20087 if ( PmmREFCNT(node) <= 0 ) {
447 11088 1 if ( libnode != NULL ) {
448 0 11088 if ( libnode->_private != node ) {
458 10470 619 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
10470 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
10470 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
10470 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
0 0 if ( PmmOWNER(node) && PmmOWNERPO(node) ) {
460 10470 0 owner = PmmOWNERPO(node);
10470 0 owner = PmmOWNERPO(node);
462 10469 1 if( libnode != NULL && libnode->parent == NULL ) {
260 10209 if( libnode != NULL && libnode->parent == NULL ) {
472 619 0 else if ( libnode != NULL ) {
510 20440 12 if ( node != NULL ) {
520 9627 10813 if ( node->_private != NULL ) {
527 10813 0 if ( dfProxy != NULL ) {
528 10245 568 if ( owner != NULL ) {
551 597 19843 switch ( node->type ) {
555 73 524 if ( ((xmlDocPtr)node)->encoding != NULL ) {
580 8 0 if ( node != NULL ) {
590 3 4 retval = xmlCopyNode( node, recursive ? 1 : 2 );
624 19688 6 if ( perlnode != NULL && perlnode != &PL_sv_undef ) {
19682 6 if ( perlnode != NULL && perlnode != &PL_sv_undef ) {
630 19680 2 if ( sv_derived_from(perlnode, "XML::LibXML::Node") ) {
631 19680 0 proxy = SvPROXYNODE(perlnode);
632 19680 0 if ( proxy != NULL ) {
637 19679 1 if ( retval != NULL
638 0 19679 && ((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 269 0 if ( nodetofix != NULL ) {
718 0 269 switch ( PmmNODE(nodetofix)->type ) {
730 267 2 if ( PmmOWNER(nodetofix) != NULL ) {
731 267 0 oldParent = PmmOWNERPO(nodetofix);
267 0 oldParent = PmmOWNERPO(nodetofix);
739 260 9 if( oldParent != parent ) {
742 254 6 if ( parent && parent != nodetofix ){
254 0 if ( parent && parent != nodetofix ){
751 258 2 if ( oldParent != NULL && oldParent != nodetofix )
258 0 if ( oldParent != NULL && oldParent != nodetofix )
754 246 14 if ( PmmNODE(nodetofix)->type != XML_ATTRIBUTE_NODE
755 234 12 && PmmNODE(nodetofix)->type != XML_DTD_NODE
756 8 226 && PmmNODE(nodetofix)->properties != NULL ) {
761 254 6 if ( parent == NULL || PmmNODE(nodetofix)->parent == NULL ) {
5 249 if ( parent == NULL || PmmNODE(nodetofix)->parent == NULL ) {
779 82 289 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 78 0 if (proxy != NULL) {
847 78 0 if ( node != NULL ) {
850 78 0 if ( PmmREFCNT(node) <= 0 ) {
853 1 77 if ( libnode != NULL ) {
854 0 1 if (libnode->_private != NULL ) {
855 0 0 if ( libnode->_private != (void*)node ) {
880 78 0 if ( ctxt != NULL ) {
901 376 0 if ( scalar != NULL
902 376 0 && scalar != &PL_sv_undef
903 376 0 && sv_isa( scalar, "XML::LibXML::ParserContext" )
904 376 0 && SvPROXYNODE(scalar) != NULL ) {
376 0 && SvPROXYNODE(scalar) != NULL ) {
905 376 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 3700 38 if ( string != NULL ) {
1089 0 3700 if ( encoding != NULL ) {
1095 3700 0 if ( enc == 0 ) {
1102 3700 0 if ( enc == XML_CHAR_ENCODING_UTF8 ) {
1121 1524 0 if ( scalar != NULL && SvOK(scalar) ) {
34 1490 if ( scalar != NULL && SvOK(scalar) ) {
34 0 if ( scalar != NULL && SvOK(scalar) ) {
0 34 if ( scalar != NULL && SvOK(scalar) ) {
1123 1489 1 char * t_pv =SvPV(scalar, len);
1126 1412 78 if ( xmlStrlen(string) > 0 ) {
1130 422 990 if( !DO_UTF8(scalar) && encoding != NULL ) {
0 422 if( !DO_UTF8(scalar) && encoding != NULL ) {
72 918 if( !DO_UTF8(scalar) && encoding != NULL ) {
1137 72 0 if ( string != NULL ) {
1145 1490 0 if (string != NULL ) {
1163 12 0 if ( refnode != NULL ) {
1165 12 0 if ( real_doc != NULL && real_doc->encoding != NULL ) {
12 0 if ( real_doc != NULL && real_doc->encoding != NULL ) {
1170 0 12 if ( PmmNodeEncoding(real_doc) == XML_CHAR_ENCODING_NONE ) {
1183 0 12 if ( PmmNodeEncoding( real_doc ) == XML_CHAR_ENCODING_UTF8 ) {
1206 1437 0 if ( refnode != NULL ) {
1209 1309 128 if (real_dom != NULL && real_dom->encoding != NULL ) {
138 1171 if (real_dom != NULL && real_dom->encoding != NULL ) {
1213 138 0 if ( scalar != NULL && scalar != &PL_sv_undef ) {
138 0 if ( scalar != NULL && scalar != &PL_sv_undef ) {
1215 138 0 char * t_pv =SvPV(scalar, len);
1217 138 0 if ( t_pv && len > 0 ) {
122 16 if ( t_pv && len > 0 ) {
1221 42 80 if( !DO_UTF8(scalar) ) {
0 42 if( !DO_UTF8(scalar) ) {
1226 0 80 if ( PmmNodeEncoding(real_dom) == XML_CHAR_ENCODING_NONE ) {
1241 58 80 if (string==NULL) {