| 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); |