Branch Coverage

src/arrays.c
Criterion Covered Total %
branch 50 316 15.8


line true false branch
35 755 0 if (!SvROK(arg))
38 755 0 if (SvPOK(foo))
88 0 739 if (is_scalar_ref(arg)) /* Scalar ref */
89 0 0 return (void*) SvPV(SvRV(arg), len);
91 739 0 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
0 739 if (packtype!='f' && packtype!='i' && packtype!='d' && packtype!='s'
92 0 0 && packtype != 'u')
106 0 739 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 739 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
739 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
739 0 if (SvTYPE(arg)==SVt_PVGV || (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV)) {
135 0 739 if (SvTYPE(arg)==SVt_PVGV) {
136 0 0 array = (AV *) GvAVn((GV*) arg); /* glob */
143 0 739 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 739 if (packtype=='i')
146 0 0 SvGROW( work, sizeof(int)*(n+1) );
0 0 SvGROW( work, sizeof(int)*(n+1) );
147 739 0 if (packtype=='d')
148 739 0 SvGROW( work, sizeof(double)*(n+1) );
739 0 SvGROW( work, sizeof(double)*(n+1) );
149 0 739 if (packtype=='s')
150 0 0 SvGROW( work, sizeof(short)*(n+1) );
0 0 SvGROW( work, sizeof(short)*(n+1) );
151 0 739 if (packtype=='u')
152 0 0 SvGROW( work, sizeof(char)*(n+1) );
0 0 SvGROW( work, sizeof(char)*(n+1) );
157 4986 739 for(i=0; i<=n; i++) {
160 4986 0 if (work2==NULL)
163 4986 0 if (SvROK(*work2))
165 4986 0 nval = SvNV(*work2);
168 0 4986 if (packtype=='f') {
172 0 4986 if (packtype=='i') {
176 4986 0 if (packtype=='d') {
180 0 4986 if (packtype=='s') {
184 0 4986 if (packtype=='u') {
192 739 0 return (void *) SvPV(work, PL_na);
253 0 0 if (is_scalar_ref(arg)) /* Scalar ref */
254 0 0 return (void*) SvPV(SvRV(arg), len);
256 0 0 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 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); }
0 0 if (!SvROK(arg) && SvTYPE(arg)!=SVt_PVGV) { return (void *) SvPV(arg, PL_na); }
275 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)) {
277 0 0 if (SvTYPE(arg)==SVt_PVGV) {
278 0 0 array = GvAVn((GV*) arg); /* glob */
287 0 0 for(i=0; i<=n; i++) { /* Loop over 1st dimension */
291 0 0 isref = work2!=NULL && SvROK(*work2); /* Is is a reference */
0 0 isref = work2!=NULL && SvROK(*work2); /* Is is a reference */
293 0 0 if (isref) {
298 0 0 nval = SvNV(*work2);
304 0 0 if (i==0) {
305 0 0 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 0 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 0 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 0 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 0 0 if (packtype=='d')
314 0 0 SvGROW( work, sizeof(double)*(n+1) );
0 0 SvGROW( work, sizeof(double)*(n+1) );
317 0 0 for(j=0; j<=m; j++) { /* Loop over 2nd dimension */
319 0 0 if (isref) {
321 0 0 if (work2==NULL)
324 0 0 if (SvROK(*work2))
326 0 0 nval = SvNV(*work2);
330 0 0 if (packtype=='d') {
334 0 0 if (packtype=='f') {
338 0 0 if (packtype=='i') {
342 0 0 if (packtype=='s') {
346 0 0 if (packtype=='u') {
355 0 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'
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++) {
522 8 0 if (is_scalar_ref(arg)) /* Do nothing */
525 8 0 if (packtype!='f' && packtype!='i' && packtype!= 'd' &&
0 8 if (packtype!='f' && packtype!='i' && packtype!= 'd' &&
526 0 0 packtype!='u' && packtype!='s')
531 0 8 if (m==0)
534 0 8 if (packtype=='i') /* Cast void array var[] to appropriate type */
536 0 8 if (packtype=='f')
538 8 0 if (packtype=='d')
540 0 8 if (packtype=='u')
542 0 8 if (packtype=='s')
547 46 8 for(i=0; i
548 0 46 if (packtype=='i')
550 0 46 if (packtype=='f')
552 46 0 if (packtype=='d')
554 0 46 if (packtype=='u')
556 0 46 if (packtype=='s')
582 8 0 if (is_scalar_ref(arg)) /* Do nothing */
588 0 8 if (SvTYPE(arg)==SVt_PVGV) {
589 0 0 array = GvAVn((GV*)arg); /* glob */
590 8 0 }else if (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV) {
0 8 }else if (SvROK(arg) && SvTYPE(SvRV(arg))==SVt_PVAV) {
599 46 8 for (i=m+1; i
622 0 0 if (packtype!='f' && packtype!='i' && packtype!='d'
623 0 0 && packtype!='u' && packtype!='s')
0 0 && packtype!='u' && packtype!='s')
628 0 0 if (packtype=='f')
629 0 0 SvGROW( work, sizeof(float)*n ); /* Pregrow for efficiency */
0 0 SvGROW( work, sizeof(float)*n ); /* Pregrow for efficiency */
630 0 0 if (packtype=='i')
631 0 0 SvGROW( work, sizeof(int)*n );
0 0 SvGROW( work, sizeof(int)*n );
632 0 0 if (packtype=='d')
633 0 0 SvGROW( work, sizeof(double)*n);
0 0 SvGROW( work, sizeof(double)*n);
634 0 0 if (packtype=='u')
635 0 0 SvGROW( work, sizeof(char)*n);
0 0 SvGROW( work, sizeof(char)*n);
636 0 0 if (packtype=='s')
637 0 0 SvGROW( work, sizeof(short)*n);
0 0 SvGROW( work, sizeof(short)*n);
639 0 0 return (void *) SvPV(work, PL_na);