Branch Coverage

arrays.c
Criterion Covered Total %
branch 93 336 27.6


line true false branch
35 0 360 if (!SvROK(arg))
38 110 250 if (SvPOK(foo))
88 110 93 if (is_scalar_ref(arg)) /* Scalar ref */
89 110 0 return (void*) SvPV(SvRV(arg), len);
91 93 0 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
93 0 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
0 93 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
0 0 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
92 0 0 && packtype != 'u')
106 0 93 if (!SvROK(arg) && SvTYPE(arg)!=SVt_PVGV) {
0 0 if (!SvROK(arg) && SvTYPE(arg)!=SVt_PVGV) {
108 0 0 if (packtype=='f') {
109 0 0 scalar = (float) SvNV(arg); /* Get the scalar value */
112 0 0 if (packtype=='i') {
113 0 0 iscalar = (int) SvNV(arg); /* Get the scalar value */
116 0 0 if (packtype=='d') {
117 0 0 dscalar = (double) SvNV(arg); /*Get the scalar value */
120 0 0 if (packtype=='s') {
121 0 0 sscalar = (short) SvNV(arg); /*Get the scalar value */
124 0 0 if (packtype=='u') {
125 0 0 uscalar = (unsigned char) SvNV(arg); /*Get the scalar value */
128 0 0 return (void *) SvPV(work, PL_na); /* Return the pointer */
133 93 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
93 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
93 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
135 0 93 if (SvTYPE(arg)==SVt_PVGV) {
136 0 0 array = (AV *) GvAVn((GV*) arg); /* glob */
143 0 93 if (packtype=='f')
144 0 0 SvGROW( work, sizeof(float)*(n+1) ); /* Pregrow for efficiency */
0 0 SvGROW( work, sizeof(float)*(n+1) ); /* Pregrow for efficiency */
145 0 93 if (packtype=='i')
146 0 0 SvGROW( work, sizeof(int)*(n+1) );
0 0 SvGROW( work, sizeof(int)*(n+1) );
147 93 0 if (packtype=='d')
148 93 0 SvGROW( work, sizeof(double)*(n+1) );
89 4 SvGROW( work, sizeof(double)*(n+1) );
149 0 93 if (packtype=='s')
150 0 0 SvGROW( work, sizeof(short)*(n+1) );
0 0 SvGROW( work, sizeof(short)*(n+1) );
151 0 93 if (packtype=='u')
152 0 0 SvGROW( work, sizeof(char)*(n+1) );
0 0 SvGROW( work, sizeof(char)*(n+1) );
157 591072 93 for(i=0; i<=n; i++) {
160 0 591072 if (work2==NULL)
163 0 591072 if (SvROK(*work2))
165 524861 66211 nval = SvNV(*work2);
168 0 591072 if (packtype=='f') {
172 0 591072 if (packtype=='i') {
176 591072 0 if (packtype=='d') {
180 0 591072 if (packtype=='s') {
184 0 591072 if (packtype=='u') {
192 93 0 return (void *) SvPV(work, PL_na);
253 0 10 if (is_scalar_ref(arg)) /* Scalar ref */
254 0 0 return (void*) SvPV(SvRV(arg), len);
256 10 0 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
10 0 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
0 10 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
0 0 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
257 0 0 && packtype!='u')
262 0 10 if (!SvROK(arg) && SvTYPE(arg)!=SVt_PVGV) { return (void *) SvPV(arg, PL_na); }
0 0 if (!SvROK(arg) && SvTYPE(arg)!=SVt_PVGV) { return (void *) SvPV(arg, PL_na); }
0 0 if (!SvROK(arg) && SvTYPE(arg)!=SVt_PVGV) { return (void *) SvPV(arg, PL_na); }
275 10 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
10 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
10 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
277 0 10 if (SvTYPE(arg)==SVt_PVGV) {
278 0 0 array = GvAVn((GV*) arg); /* glob */
287 240 10 for(i=0; i<=n; i++) { /* Loop over 1st dimension */
291 240 0 isref = work2!=NULL && SvROK(*work2); /* Is is a reference */
240 0 isref = work2!=NULL && SvROK(*work2); /* Is is a reference */
293 240 0 if (isref) {
298 0 0 nval = SvNV(*work2);
304 10 230 if (i==0) {
305 0 10 if (packtype=='f')
306 0 0 SvGROW( work, sizeof(float)*(n+1)*(m+1) );
0 0 SvGROW( work, sizeof(float)*(n+1)*(m+1) );
307 0 10 if (packtype=='i')
308 0 0 SvGROW( work, sizeof(int)*(n+1)*(m+1) );
0 0 SvGROW( work, sizeof(int)*(n+1)*(m+1) );
309 0 10 if (packtype=='s')
310 0 0 SvGROW( work, sizeof(short)*(n+1)*(m+1) );
0 0 SvGROW( work, sizeof(short)*(n+1)*(m+1) );
311 0 10 if (packtype=='u')
312 0 0 SvGROW( work, sizeof(char)*(n+1)*(m+1) );
0 0 SvGROW( work, sizeof(char)*(n+1)*(m+1) );
313 10 0 if (packtype=='d')
314 10 0 SvGROW( work, sizeof(double)*(n+1)*(m+1) );
10 0 SvGROW( work, sizeof(double)*(n+1)*(m+1) );
317 7680 240 for(j=0; j<=m; j++) { /* Loop over 2nd dimension */
319 7680 0 if (isref) {
321 0 7680 if (work2==NULL)
324 0 7680 if (SvROK(*work2))
326 6144 1536 nval = SvNV(*work2);
330 7680 0 if (packtype=='d') {
334 0 7680 if (packtype=='f') {
338 0 7680 if (packtype=='i') {
342 0 7680 if (packtype=='s') {
346 0 7680 if (packtype=='u') {
355 10 0 return (void *) SvPV(work, PL_na);
394 0 0 if (is_scalar_ref(arg)) /* Scalar ref */
395 0 0 return (void*) SvPV(SvRV(arg), len);
397 0 0 if (packtype!='f' && packtype!='i' && packtype!='d'
0 0 if (packtype!='f' && packtype!='i' && packtype!='d'
0 0 if (packtype!='f' && packtype!='i' && packtype!='d'
398 0 0 && packtype!='s' && packtype!='u')
0 0 && packtype!='s' && packtype!='u')
412 0 0 return (void *) SvPV(work, PL_na);
432 0 0 if (arg==NULL || (!SvROK(*arg) && SvTYPE(*arg)!=SVt_PVGV)) {
0 0 if (arg==NULL || (!SvROK(*arg) && SvTYPE(*arg)!=SVt_PVGV)) {
0 0 if (arg==NULL || (!SvROK(*arg) && SvTYPE(*arg)!=SVt_PVGV)) {
434 0 0 if (arg==NULL)
437 0 0 nval = SvNV(*arg);
439 0 0 if (packtype=='f') {
443 0 0 if (packtype=='i') {
447 0 0 if (packtype=='d') {
450 0 0 if (packtype=='s') {
454 0 0 if (packtype=='u') {
464 0 0 if (SvTYPE(*arg)==SVt_PVGV || (SvROK(*arg) && SvTYPE(SvRV(*arg))==SVt_PVAV)) {
0 0 if (SvTYPE(*arg)==SVt_PVGV || (SvROK(*arg) && SvTYPE(SvRV(*arg))==SVt_PVAV)) {
0 0 if (SvTYPE(*arg)==SVt_PVGV || (SvROK(*arg) && SvTYPE(SvRV(*arg))==SVt_PVAV)) {
468 0 0 if (SvTYPE(*arg)==SVt_PVGV) {
469 0 0 array = GvAVn((GV*)*arg); /* glob */
478 0 0 for (i=0; i<=n; i++) {
523 0 55 if (is_scalar_ref(arg)) /* Do nothing */
526 55 0 if (packtype!='f' && packtype!='i' && packtype!= 'd' &&
55 0 if (packtype!='f' && packtype!='i' && packtype!= 'd' &&
0 55 if (packtype!='f' && packtype!='i' && packtype!= 'd' &&
0 0 if (packtype!='f' && packtype!='i' && packtype!= 'd' &&
527 0 0 packtype!='u' && packtype!='s')
532 55 0 if (m==0)
535 0 55 if (packtype=='i') /* Cast void array var[] to appropriate type */
537 0 55 if (packtype=='f')
539 55 0 if (packtype=='d')
541 0 55 if (packtype=='u')
543 0 55 if (packtype=='s')
548 524912 55 for(i=0; i
549 0 524912 if (packtype=='i')
551 0 524912 if (packtype=='f')
553 524912 0 if (packtype=='d')
555 0 524912 if (packtype=='u')
557 0 524912 if (packtype=='s')
583 0 92 if (is_scalar_ref(arg)) /* Do nothing */
589 0 92 if (SvTYPE(arg)==SVt_PVGV) {
590 0 0 array = GvAVn((GV*)arg); /* glob */
591 92 0 }else if (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV) {
92 0 }else if (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV) {
600 66204 92 for (i=m+1; i
623 0 0 if (packtype!='f' && packtype!='i' && packtype!='d'
0 0 if (packtype!='f' && packtype!='i' && packtype!='d'
0 0 if (packtype!='f' && packtype!='i' && packtype!='d'
624 0 0 && packtype!='u' && packtype!='s')
0 0 && packtype!='u' && packtype!='s')
629 0 0 if (packtype=='f')
630 0 0 SvGROW( work, sizeof(float)*n ); /* Pregrow for efficiency */
0 0 SvGROW( work, sizeof(float)*n ); /* Pregrow for efficiency */
631 0 0 if (packtype=='i')
632 0 0 SvGROW( work, sizeof(int)*n );
0 0 SvGROW( work, sizeof(int)*n );
633 0 0 if (packtype=='d')
634 0 0 SvGROW( work, sizeof(double)*n);
0 0 SvGROW( work, sizeof(double)*n);
635 0 0 if (packtype=='u')
636 0 0 SvGROW( work, sizeof(char)*n);
0 0 SvGROW( work, sizeof(char)*n);
637 0 0 if (packtype=='s')
638 0 0 SvGROW( work, sizeof(short)*n);
0 0 SvGROW( work, sizeof(short)*n);
640 0 0 return (void *) SvPV(work, PL_na);