| line | true | false | branch | 
 
| 171 | 0 | 3 | if (!sv_derived_from(sv, "Imager::Color")) { | 
 
| 174 | 3 | 0 | return *INT2PTR(i_color *, SvIV((SV *)SvRV(sv))); | 
 
| 185 | 0 | 0 | if ( !hv_exists(hv,key,strlen(key)) ) return 0; | 
 
| 188 | 0 | 0 | *store=SvPV(*svpp, PL_na ); | 
 
| 200 | 0 | 0 | if ( !hv_exists(hv,key,strlen(key)) ) return 0; | 
 
| 203 | 0 | 0 | *store=(int)SvIV(*svpp); | 
 
| 214 | 0 | 0 | if ( !hv_exists(hv,key,strlen(key)) ) return 0; | 
 
| 216 | 0 | 0 | *store=(double)SvNV(*svpp); | 
 
| 227 | 0 | 0 | if ( !hv_exists(hv,key,strlen(key)) ) return 0; | 
 
| 230 | 0 | 0 | *store = INT2PTR(void*, SvIV(*svpp)); | 
 
| 242 | 0 | 0 | if ( !hv_exists(hv,key,strlen(key)) ) return 0; | 
 
| 246 | 0 | 0 | if (sv_derived_from(*svpp,type)) { | 
 
| 247 | 0 | 0 | IV tmp = SvIV((SV*)SvRV(*svpp)); | 
 
| 321 | 4 | 105 | if (!SvOK(cbd->readcb)) { | 
 
|  | 4 | 0 | if (!SvOK(cbd->readcb)) { | 
 
|  | 4 | 0 | if (!SvOK(cbd->readcb)) { | 
 
| 329 | 0 | 105 | EXTEND(SP, 2); | 
 
| 330 | 0 | 105 | PUSHMARK(SP); | 
 
| 339 | 0 | 105 | if (count != 1) | 
 
| 344 | 12 | 93 | if (SvOK(data)) { | 
 
|  | 12 | 0 | if (SvOK(data)) { | 
 
|  | 0 | 12 | if (SvOK(data)) { | 
 
| 346 | 93 | 0 | char *ptr = SvPVbyte(data, len); | 
 
| 347 | 0 | 93 | if (len > maxread) | 
 
| 359 | 105 | 0 | FREETMPS; | 
 
| 373 | 3 | 5 | if (!SvOK(cbd->seekcb)) { | 
 
|  | 3 | 0 | if (!SvOK(cbd->seekcb)) { | 
 
|  | 3 | 0 | if (!SvOK(cbd->seekcb)) { | 
 
| 381 | 0 | 5 | EXTEND(SP, 2); | 
 
| 382 | 0 | 5 | PUSHMARK(SP); | 
 
| 391 | 0 | 5 | if (count != 1) | 
 
| 394 | 5 | 0 | result = POPi; | 
 
| 397 | 5 | 0 | FREETMPS; | 
 
| 412 | 9 | 4950 | if (!SvOK(cbd->writecb)) { | 
 
|  | 9 | 0 | if (!SvOK(cbd->writecb)) { | 
 
|  | 9 | 0 | if (!SvOK(cbd->writecb)) { | 
 
| 420 | 0 | 4950 | EXTEND(SP, 1); | 
 
| 421 | 0 | 4950 | PUSHMARK(SP); | 
 
| 428 | 0 | 4950 | if (count != 1) | 
 
| 432 | 4950 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 4950 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 45 | 4905 | success = SvTRUE(sv); | 
 
|  | 45 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 45 | success = SvTRUE(sv); | 
 
|  | 0 | 4905 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 4905 | 0 | success = SvTRUE(sv); | 
 
|  | 4905 | 0 | success = SvTRUE(sv); | 
 
|  | 1 | 4904 | success = SvTRUE(sv); | 
 
|  | 0 | 1 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 4904 | 1 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
| 436 | 4950 | 0 | FREETMPS; | 
 
| 439 | 4904 | 46 | return success ? size : -1; | 
 
| 454 | 12 | 20 | if (SvOK(cbd->closecb)) { | 
 
|  | 12 | 0 | if (SvOK(cbd->closecb)) { | 
 
|  | 0 | 12 | if (SvOK(cbd->closecb)) { | 
 
| 460 | 0 | 20 | PUSHMARK(SP); | 
 
| 467 | 20 | 0 | if (count) { | 
 
| 469 | 20 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 20 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 20 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 20 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 20 | 0 | success = SvTRUE(sv); | 
 
|  | 20 | 0 | success = SvTRUE(sv); | 
 
|  | 13 | 7 | success = SvTRUE(sv); | 
 
|  | 0 | 13 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
|  | 7 | 13 | success = SvTRUE(sv); | 
 
|  | 0 | 0 | success = SvTRUE(sv); | 
 
| 475 | 20 | 0 | FREETMPS; | 
 
| 479 | 19 | 13 | return success ? 0 : -1; | 
 
| 497 | 9 | 0 | switch (type) { | 
 
| 517 | 277 | 163 | if (SvOK(sv)) { | 
 
|  | 277 | 0 | if (SvOK(sv)) { | 
 
|  | 0 | 277 | if (SvOK(sv)) { | 
 
| 518 | 162 | 1 | if (SvROK(sv)) { | 
 
| 543 | 0 | 187 | SvGETMAGIC(data_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(data_sv); | 
 
| 544 | 9 | 178 | if (SvROK(data_sv)) { | 
 
| 545 | 9 | 0 | if (im_SvREFSCALAR(SvRV(data_sv))) { | 
 
| 559 | 182 | 5 | data = SvPVbyte(sv, length); | 
 
| 590 | 30 | 6 | if (push_errors) | 
 
| 593 | 112 | 1 | for (i = 0; i < count; ++i) | 
 
| 594 | 35 | 77 | if (strEQ(names[i].name, name)) | 
 
| 597 | 1 | 0 | if (push_errors) { | 
 
| 670 | 0 | 24 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
| 674 | 0 | 0 | if (failed) | 
 
| 676 | 0 | 0 | if (quant->transp != tr_none) { | 
 
| 679 | 0 | 0 | if (sv && *sv) | 
 
|  | 0 | 0 | if (sv && *sv) | 
 
| 680 | 0 | 0 | quant->tr_threshold = SvIV(*sv); | 
 
| 682 | 0 | 0 | if (quant->transp == tr_errdiff) { | 
 
| 684 | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) | 
 
| 686 | 0 | 0 | if (failed) | 
 
| 689 | 0 | 0 | if (quant->transp == tr_ordered) { | 
 
| 692 | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 0 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
| 694 | 0 | 0 | if (failed) | 
 
| 698 | 0 | 0 | if (quant->tr_orddith == od_custom) { | 
 
| 700 | 0 | 0 | if (sv && *sv && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 0 | 0 | if (sv && *sv && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 0 | 0 | if (sv && *sv && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
| 703 | 0 | 0 | if (len > sizeof(quant->tr_custom)) | 
 
| 705 | 0 | 0 | for (i = 0; i < len; ++i) { | 
 
| 707 | 0 | 0 | if (sv2 && *sv2) { | 
 
|  | 0 | 0 | if (sv2 && *sv2) { | 
 
| 708 | 0 | 0 | quant->tr_custom[i] = SvIV(*sv2); | 
 
| 711 | 0 | 0 | while (i < sizeof(quant->tr_custom)) | 
 
| 719 | 20 | 4 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 20 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 20 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 20 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
| 722 | 1 | 19 | if (failed) | 
 
| 726 | 8 | 15 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 8 | 0 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 8 | 0 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 8 | 0 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
| 732 | 0 | 8 | if (quant->mc_count > quant->mc_size) | 
 
| 734 | 35 | 8 | for (i = 0; i < quant->mc_count; ++i) { | 
 
| 736 | 35 | 0 | if (sv1 && *sv1 && SvROK(*sv1) && sv_derived_from(*sv1, "Imager::Color")) { | 
 
|  | 35 | 0 | if (sv1 && *sv1 && SvROK(*sv1) && sv_derived_from(*sv1, "Imager::Color")) { | 
 
|  | 35 | 0 | if (sv1 && *sv1 && SvROK(*sv1) && sv_derived_from(*sv1, "Imager::Color")) { | 
 
|  | 35 | 0 | if (sv1 && *sv1 && SvROK(*sv1) && sv_derived_from(*sv1, "Imager::Color")) { | 
 
| 737 | 35 | 0 | i_color *col = INT2PTR(i_color *, SvIV((SV*)SvRV(*sv1))); | 
 
| 740 | 0 | 0 | else if (push_errors) { | 
 
| 747 | 0 | 23 | if (sv && *sv) { | 
 
|  | 0 | 0 | if (sv && *sv) { | 
 
| 748 | 0 | 0 | i = SvIV(*sv); | 
 
| 749 | 0 | 0 | if (i <= quant->mc_size && i >= quant->mc_count) | 
 
|  | 0 | 0 | if (i <= quant->mc_size && i >= quant->mc_count) | 
 
| 755 | 9 | 14 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 9 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 9 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 9 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
| 757 | 0 | 9 | if (failed) | 
 
| 761 | 1 | 22 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 1 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 1 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
|  | 1 | 0 | if (sv && *sv && (str = SvPV(*sv, len))) { | 
 
| 763 | 0 | 1 | if (failed) | 
 
| 766 | 6 | 17 | if (quant->translate == pt_errdiff && quant->errdiff == ed_custom) { | 
 
|  | 1 | 5 | if (quant->translate == pt_errdiff && quant->errdiff == ed_custom) { | 
 
| 769 | 1 | 0 | if (sv && *sv) | 
 
|  | 1 | 0 | if (sv && *sv) | 
 
| 770 | 1 | 0 | quant->ed_width = SvIV(*sv); | 
 
| 772 | 1 | 0 | if (sv && *sv) | 
 
|  | 1 | 0 | if (sv && *sv) | 
 
| 773 | 1 | 0 | quant->ed_height = SvIV(*sv); | 
 
| 775 | 0 | 1 | if (sv && *sv) | 
 
|  | 0 | 0 | if (sv && *sv) | 
 
| 776 | 0 | 0 | quant->ed_orig = SvIV(*sv); | 
 
| 777 | 1 | 0 | if (quant->ed_width > 0 && quant->ed_height > 0) { | 
 
|  | 1 | 0 | if (quant->ed_width > 0 && quant->ed_height > 0) { | 
 
| 781 | 1 | 0 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 1 | 0 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 1 | 0 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
|  | 1 | 0 | if (sv && *sv && SvROK(*sv) && SvTYPE(SvRV(*sv)) == SVt_PVAV) { | 
 
| 785 | 0 | 1 | if (len > (size_t)quant->ed_width * quant->ed_height) | 
 
| 787 | 4 | 1 | for (avi = 0; avi < len; ++avi) { | 
 
| 789 | 4 | 0 | if (sv2 && *sv2) { | 
 
|  | 4 | 0 | if (sv2 && *sv2) { | 
 
| 790 | 4 | 0 | IV iv = SvIV(*sv2); | 
 
| 791 | 4 | 0 | if (push_errors && iv < 0) { | 
 
|  | 0 | 4 | if (push_errors && iv < 0) { | 
 
| 801 | 1 | 0 | if (!sum) { | 
 
| 806 | 1 | 0 | if (push_errors) { | 
 
| 814 | 0 | 22 | if (sv && *sv) | 
 
|  | 0 | 0 | if (sv && *sv) | 
 
| 815 | 0 | 0 | quant->perturb = SvIV(*sv); | 
 
| 823 | 0 | 24 | if (quant->ed_map) | 
 
| 830 | 2 | 22 | if (!result) { | 
 
| 850 | 7 | 10 | if (!sv || !*sv || !SvROK(*sv) || SvTYPE(SvRV(*sv)) != SVt_PVAV) { | 
 
|  | 7 | 0 | if (!sv || !*sv || !SvROK(*sv) || SvTYPE(SvRV(*sv)) != SVt_PVAV) { | 
 
|  | 7 | 0 | if (!sv || !*sv || !SvROK(*sv) || SvTYPE(SvRV(*sv)) != SVt_PVAV) { | 
 
|  | 0 | 7 | if (!sv || !*sv || !SvROK(*sv) || SvTYPE(SvRV(*sv)) != SVt_PVAV) { | 
 
| 858 | 251 | 7 | for (i = 0; i < quant->mc_count; ++i) { | 
 
| 877 | 67 | 6 | if (looks_like_number(sv)) { | 
 
| 878 | 67 | 0 | IV work = SvIV(sv); | 
 
| 879 | 67 | 0 | if (work < (IV)i_pfm_evenodd || work > (IV)i_pfm_nonzero) | 
 
|  | 0 | 67 | if (work < (IV)i_pfm_evenodd || work > (IV)i_pfm_nonzero) | 
 
| 884 | 6 | 0 | return (i_poly_fill_mode_t)lookup_name | 
 
| 896 | 0 | 6 | SvGETMAGIC(sv); | 
 
|  | 0 | 0 | SvGETMAGIC(sv); | 
 
| 897 | 0 | 6 | if (!SvOK(sv) || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(sv) || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(sv) || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVAV) | 
 
|  | 6 | 0 | if (!SvOK(sv) || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVAV) | 
 
|  | 0 | 6 | if (!SvOK(sv) || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVAV) | 
 
| 902 | 0 | 6 | if (polys->count < 1) | 
 
| 905 | 14 | 6 | for (i = 0; i < polys->count; ++i) { | 
 
| 914 | 0 | 14 | if (!poly_sv) | 
 
| 917 | 0 | 14 | SvGETMAGIC(*poly_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(*poly_sv); | 
 
| 918 | 0 | 14 | if (!SvOK(*poly_sv) || !SvROK(*poly_sv) || SvTYPE(SvRV(*poly_sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(*poly_sv) || !SvROK(*poly_sv) || SvTYPE(SvRV(*poly_sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(*poly_sv) || !SvROK(*poly_sv) || SvTYPE(SvRV(*poly_sv)) != SVt_PVAV) | 
 
|  | 14 | 0 | if (!SvOK(*poly_sv) || !SvROK(*poly_sv) || SvTYPE(SvRV(*poly_sv)) != SVt_PVAV) | 
 
|  | 0 | 14 | if (!SvOK(*poly_sv) || !SvROK(*poly_sv) || SvTYPE(SvRV(*poly_sv)) != SVt_PVAV) | 
 
| 922 | 0 | 14 | if (av_len(poly_av) != 1) | 
 
| 926 | 0 | 14 | if (!x_sv) | 
 
| 928 | 0 | 14 | if (!y_sv) | 
 
| 930 | 0 | 14 | SvGETMAGIC(*x_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(*x_sv); | 
 
| 931 | 0 | 14 | SvGETMAGIC(*y_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(*y_sv); | 
 
| 932 | 0 | 14 | if (!SvOK(*x_sv) || !SvROK(*x_sv) || SvTYPE(SvRV(*x_sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(*x_sv) || !SvROK(*x_sv) || SvTYPE(SvRV(*x_sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(*x_sv) || !SvROK(*x_sv) || SvTYPE(SvRV(*x_sv)) != SVt_PVAV) | 
 
|  | 14 | 0 | if (!SvOK(*x_sv) || !SvROK(*x_sv) || SvTYPE(SvRV(*x_sv)) != SVt_PVAV) | 
 
|  | 0 | 14 | if (!SvOK(*x_sv) || !SvROK(*x_sv) || SvTYPE(SvRV(*x_sv)) != SVt_PVAV) | 
 
| 934 | 0 | 14 | if (!SvOK(*y_sv) || !SvROK(*y_sv) || SvTYPE(SvRV(*y_sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(*y_sv) || !SvROK(*y_sv) || SvTYPE(SvRV(*y_sv)) != SVt_PVAV) | 
 
|  | 0 | 0 | if (!SvOK(*y_sv) || !SvROK(*y_sv) || SvTYPE(SvRV(*y_sv)) != SVt_PVAV) | 
 
|  | 14 | 0 | if (!SvOK(*y_sv) || !SvROK(*y_sv) || SvTYPE(SvRV(*y_sv)) != SVt_PVAV) | 
 
|  | 0 | 14 | if (!SvOK(*y_sv) || !SvROK(*y_sv) || SvTYPE(SvRV(*y_sv)) != SVt_PVAV) | 
 
| 938 | 0 | 14 | if (av_len(x_av) != av_len(y_av)) | 
 
| 944 | 56 | 14 | for (j = 0; j < point_count; ++j) { | 
 
| 947 | 56 | 0 | x_data[j] = x_item_sv ? SvNV(*x_item_sv) : 0; | 
 
|  | 20 | 36 | x_data[j] = x_item_sv ? SvNV(*x_item_sv) : 0; | 
 
| 948 | 56 | 0 | y_data[j] = y_item_sv ? SvNV(*y_item_sv) : 0; | 
 
|  | 20 | 36 | y_data[j] = y_item_sv ? SvNV(*y_item_sv) : 0; | 
 
| 973 | 0 | 14 | if (*count < 1) | 
 
| 976 | 17 | 14 | for(i = 0; i < *count; i++) { | 
 
| 978 | 17 | 0 | if (!sv1 || !*sv1 || !SvROK(*sv1) | 
 
|  | 17 | 0 | if (!sv1 || !*sv1 || !SvROK(*sv1) | 
 
|  | 17 | 0 | if (!sv1 || !*sv1 || !SvROK(*sv1) | 
 
| 979 | 0 | 17 | || SvTYPE(SvRV(*sv1)) != SVt_PVAV) { | 
 
| 984 | 0 | 17 | if (av_len(aseg) != 7-1) { | 
 
| 988 | 51 | 17 | for (j = 0; j < 3; ++j) { | 
 
| 990 | 51 | 0 | if (!sv2 || !*sv2) { | 
 
|  | 0 | 51 | if (!sv2 || !*sv2) { | 
 
| 994 | 27 | 24 | work[j] = SvNV(*sv2); | 
 
| 999 | 34 | 17 | for (j = 0; j < 2; ++j) { | 
 
| 1001 | 34 | 0 | if (!sv3 || !*sv3 || !SvROK(*sv3) || | 
 
|  | 34 | 0 | if (!sv3 || !*sv3 || !SvROK(*sv3) || | 
 
| 1003 | 0 | 5 | && !sv_derived_from(*sv3, "Imager::Color::Float"))) { | 
 
| 1007 | 5 | 29 | if (sv_derived_from(*sv3, "Imager::Color::Float")) { | 
 
| 1008 | 5 | 0 | segs[i].c[j] = *INT2PTR(i_fcolor *, SvIV((SV *)SvRV(*sv3))); | 
 
| 1011 | 29 | 0 | i_color c = *INT2PTR(i_color *, SvIV((SV *)SvRV(*sv3))); | 
 
| 1013 | 116 | 29 | for (ch = 0; ch < MAXCHANNELS; ++ch) { | 
 
| 1018 | 34 | 17 | for (j = 0; j < 2; ++j) { | 
 
| 1020 | 34 | 0 | if (!sv2 || !*sv2) { | 
 
|  | 0 | 34 | if (!sv2 || !*sv2) { | 
 
| 1024 | 30 | 4 | worki[j] = SvIV(*sv2); | 
 
| 1041 | 335 | 0 | int color_count = i_colorcount(im); | 
 
| 1044 | 0 | 335 | if (color_count == -1) | 
 
| 1047 | 60730 | 331 | for (i = 0; i < count; ++i) { | 
 
| 1048 | 4 | 60726 | if (indexes[i] >= color_count) { | 
 
| 1110 | 1360 | 15 | for (y = hlines->start_y; y < hlines->limit_y; ++y) { | 
 
| 1112 | 19 | 1341 | if (entry) { | 
 
| 1115 | 19 | 0 | if (entry->count) | 
 
| 1119 | 42 | 19 | for (i = 0; i < entry->count; ++i) { | 
 
| 1137 | 20 | 0 | return (off_t)SvIV(sv); | 
 
| 1178 | 40 | 0 | SvGROW(t->sv, SvCUR(t->sv)+sizeof(i_trim_colors_t)+1); | 
 
|  | 40 | 0 | SvGROW(t->sv, SvCUR(t->sv)+sizeof(i_trim_colors_t)+1); | 
 
| 1190 | 0 | 36 | if (!trim_color_list_grow(aTHX_ &t)) | 
 
| 1210 | 0 | 4 | if (!trim_color_list_grow(aTHX_ &t)) | 
 
| 1233 | 11 | 0 | if (i < 0 || i >= t.count) { | 
 
|  | 1 | 10 | if (i < 0 || i >= t.count) { | 
 
| 1241 | 4 | 6 | if (e->is_float) { | 
 
| 1258 | 0 | 75 | SvGETMAGIC(sv); | 
 
|  | 0 | 0 | SvGETMAGIC(sv); | 
 
| 1259 | 0 | 75 | if (!SvROK(sv)) | 
 
| 1262 | 75 | 0 | if (!SvPOK(t->sv) || SvMAGIC(t->sv)) | 
 
|  | 0 | 75 | if (!SvPOK(t->sv) || SvMAGIC(t->sv)) | 
 
| 1265 | 0 | 75 | if (len % sizeof(i_trim_colors_t) != 0) | 
 
| 1336 | 0 | 2000 | EXTEND(SP, 1); | 
 
| 1348 | 0 | 1924 | EXTEND(SP, 4); | 
 
| 1409 | 0 | 1444 | EXTEND(SP, MAXCHANNELS); | 
 
| 1410 | 5776 | 1444 | for (ch = 0; ch < MAXCHANNELS; ++ch) { | 
 
| 1427 | 0 | 1 | EXTEND(SP, 1); | 
 
| 1499 | 0 | 179 | if (!RETVAL) | 
 
| 1542 | 7 | 0 | if (i_get_image_file_limits(&width, &height, &bytes)) { | 
 
| 1543 | 0 | 7 | EXTEND(SP, 3); | 
 
| 1562 | 0 | 12 | if (!i_trim_rect(im, transp_threshold, cls.count, cls.colors, &left, &top, &right, &bottom)) | 
 
| 1564 | 0 | 12 | EXTEND(SP, 4); | 
 
| 1586 | 0 | 8 | if (!RETVAL) | 
 
| 1641 | 7 | 1 | data = SvPVbyte(data_sv, size); | 
 
| 1655 | 0 | 16 | if (size <= 0) | 
 
| 1663 | 0 | 16 | if (SvUTF8(buffer_sv)) | 
 
| 1666 | 16 | 0 | buffer = SvGROW(buffer_sv, size+1); | 
 
|  | 7 | 9 | buffer = SvGROW(buffer_sv, size+1); | 
 
| 1668 | 12 | 4 | if (result >= 0) { | 
 
| 1672 | 0 | 12 | EXTEND(SP, 1); | 
 
| 1676 | 0 | 16 | SvSETMAGIC(ST(1)); | 
 
| 1687 | 0 | 4 | if (size <= 0) | 
 
| 1690 | 4 | 0 | buffer = SvGROW(buffer_sv, size+1); | 
 
|  | 0 | 4 | buffer = SvGROW(buffer_sv, size+1); | 
 
| 1692 | 2 | 2 | if (result >= 0) { | 
 
| 1696 | 0 | 2 | EXTEND(SP, 1); | 
 
| 1767 | 21 | 0 | buffer = SvGROW(buffer_sv, size+1); | 
 
|  | 0 | 21 | buffer = SvGROW(buffer_sv, size+1); | 
 
| 1769 | 16 | 5 | if (result >= 0) { | 
 
| 1773 | 0 | 16 | EXTEND(SP, 1); | 
 
| 1790 | 0 | 7 | if (size <= 0) | 
 
| 1798 | 0 | 7 | if (SvUTF8(buffer_sv)) | 
 
| 1801 | 7 | 0 | buffer = SvGROW(buffer_sv, size+1); | 
 
|  | 6 | 1 | buffer = SvGROW(buffer_sv, size+1); | 
 
| 1803 | 6 | 1 | if (result >= 0) { | 
 
| 1807 | 0 | 6 | EXTEND(SP, 1); | 
 
| 1811 | 0 | 7 | SvSETMAGIC(ST(1)); | 
 
| 1822 | 0 | 13 | if (size == 0) | 
 
| 1825 | 13 | 0 | buffer = SvGROW(buffer_sv, size+1); | 
 
|  | 0 | 13 | buffer = SvGROW(buffer_sv, size+1); | 
 
| 1827 | 10 | 3 | if (result > 0) { | 
 
| 1831 | 0 | 10 | EXTEND(SP, 1); | 
 
| 1849 | 0 | 7 | if (size < 2) | 
 
| 1854 | 7 | 0 | if (result > 0) { | 
 
| 1858 | 0 | 7 | EXTEND(SP, 1); | 
 
| 1870 | 8203 | 5 | data = SvPVbyte(data_sv, size); | 
 
| 1908 | 395 | 79 | while( (item=i_format_list[i++]) != NULL ) { | 
 
| 1909 | 0 | 395 | EXTEND(SP, 1); | 
 
| 1931 | 19 | 37 | const char *name = SvOK(name_sv) ? SvPV_nolen(name_sv) : NULL; | 
 
|  | 19 | 0 | const char *name = SvOK(name_sv) ? SvPV_nolen(name_sv) : NULL; | 
 
|  | 0 | 19 | const char *name = SvOK(name_sv) ? SvPV_nolen(name_sv) : NULL; | 
 
|  | 37 | 0 | const char *name = SvOK(name_sv) ? SvPV_nolen(name_sv) : NULL; | 
 
| 1952 | 0 | 39 | EXTEND(SP, 4); | 
 
| 1978 | 0 | 0 | EXTEND(SP, 1); | 
 
| 1979 | 0 | 0 | PUSHs(im->idata ? | 
 
| 2003 | 3 | 2 | if (!i_img_alpha_channel(im, &RETVAL)) | 
 
| 2016 | 11 | 13 | if (result) { | 
 
| 2017 | 0 | 11 | if (GIMME_V == G_ARRAY) { | 
 
|  | 5 | 6 | if (GIMME_V == G_ARRAY) { | 
 
| 2018 | 0 | 5 | EXTEND(SP, 2); | 
 
| 2023 | 0 | 6 | EXTEND(SP, 1); | 
 
| 2188 | 0 | 0 | if (size_x != size_y) | 
 
| 2203 | 0 | 63 | if (size_x != size_y) | 
 
| 2220 | 0 | 4 | if (size_x != size_y) | 
 
| 2361 | 10 | 1 | if (in_count > 0) { | 
 
| 2364 | 19 | 10 | for (i = 0; i < in_count; ++i) { | 
 
| 2366 | 19 | 0 | if (!psv || !*psv || !sv_derived_from(*psv, "Imager::ImgRaw")) { | 
 
|  | 19 | 0 | if (!psv || !*psv || !sv_derived_from(*psv, "Imager::ImgRaw")) { | 
 
|  | 0 | 19 | if (!psv || !*psv || !sv_derived_from(*psv, "Imager::ImgRaw")) { | 
 
| 2371 | 19 | 0 | tmp = SvIV((SV*)SvRV(*psv)); | 
 
| 2373 | 4 | 15 | if (channels_av && | 
 
|  | 4 | 0 | if (channels_av && | 
 
| 2374 | 4 | 0 | (psv = av_fetch(channels_av, i, 0)) != NULL && | 
 
| 2376 | 4 | 0 | channels[i] = SvIV(*psv); | 
 
| 2411 | 5 | 10 | for (i = 2; i < items; ++i) { | 
 
| 2413 | 5 | 0 | if (sv_derived_from(sv1, "Imager::Color")) { | 
 
| 2414 | 5 | 0 | IV tmp = SvIV((SV*)SvRV(sv1)); | 
 
| 2417 | 0 | 0 | else if (sv_derived_from(sv1, "Imager::Color::Float")) { | 
 
| 2418 | 0 | 0 | IV tmp = SvIV((SV*)SvRV(sv1)); | 
 
| 2441 | 0 | 3 | if (len > 9) | 
 
| 2443 | 27 | 3 | for (i = 0; i < len; ++i) { | 
 
| 2445 | 3 | 24 | matrix[i] = SvNV(sv1); | 
 
| 2447 | 0 | 3 | for (; i < 9; ++i) | 
 
| 2451 | 1 | 3 | for (i = 4; i < items; ++i) { | 
 
| 2453 | 1 | 0 | if (sv_derived_from(sv1, "Imager::Color")) { | 
 
| 2454 | 1 | 0 | IV tmp = SvIV((SV*)SvRV(sv1)); | 
 
| 2457 | 0 | 0 | else if (sv_derived_from(sv1, "Imager::Color::Float")) { | 
 
| 2458 | 0 | 0 | IV tmp = SvIV((SV*)SvRV(sv1)); | 
 
| 2495 | 300 | 64 | for(i = 0; i  < len; i++) { | 
 
| 2497 | 292 | 8 | c_coef[i] = (double)SvNV(sv1); | 
 
| 2520 | 68 | 28 | for (j=0; j < outchan; ++j) { | 
 
| 2522 | 68 | 0 | if (temp && SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVAV) { | 
 
|  | 67 | 1 | if (temp && SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVAV) { | 
 
|  | 67 | 0 | if (temp && SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVAV) { | 
 
| 2525 | 28 | 39 | if (len > inchan) | 
 
| 2534 | 67 | 28 | for (j = 0; j < outchan; ++j) { | 
 
| 2537 | 179 | 67 | for (i = 0; i < len; ++i) { | 
 
| 2539 | 179 | 0 | if (temp) | 
 
| 2540 | 22 | 157 | coeff[i+j*inchan] = SvNV(*temp); | 
 
| 2544 | 0 | 67 | while (i < inchan) | 
 
| 2566 | 0 | 9 | if (im->channels < len) | 
 
| 2569 | 27 | 9 | for (j=0; j | 
 
| 2571 | 27 | 0 | if (temp && SvROK(*temp) && (SvTYPE(SvRV(*temp)) == SVt_PVAV) ) { | 
 
|  | 23 | 4 | if (temp && SvROK(*temp) && (SvTYPE(SvRV(*temp)) == SVt_PVAV) ) { | 
 
|  | 23 | 0 | if (temp && SvROK(*temp) && (SvTYPE(SvRV(*temp)) == SVt_PVAV) ) { | 
 
| 2573 | 5 | 18 | if(av_len(avsub) != 255) | 
 
| 2576 | 4608 | 18 | for (i=0; i<256 ; i++) { | 
 
| 2579 | 4608 | 0 | val = temp ? SvIV(*temp) : 0; | 
 
|  | 4608 | 0 | val = temp ? SvIV(*temp) : 0; | 
 
| 2580 | 0 | 4608 | if (val<0) val = 0; | 
 
| 2581 | 0 | 4608 | if (val>255) val = 255; | 
 
| 2616 | 0 | 916 | SvGETMAGIC(sv); | 
 
|  | 0 | 0 | SvGETMAGIC(sv); | 
 
| 2617 | 0 | 916 | RETVAL = SvOK(sv) && SvROK(sv) && | 
 
|  | 0 | 0 | RETVAL = SvOK(sv) && SvROK(sv) && | 
 
|  | 0 | 0 | RETVAL = SvOK(sv) && SvROK(sv) && | 
 
| 2619 | 37 | 67 | || sv_derived_from(sv, "Imager::Color::Float")); | 
 
| 2841 | 1 | 0 | bits = (const unsigned char *)SvPV(bits_sv, bits_size); | 
 
| 2842 | 1 | 0 | mask = (const unsigned char *)SvPV(mask_sv, mask_size); | 
 
| 2843 | 0 | 1 | if (bits_size == 0) { | 
 
| 2847 | 0 | 1 | if (mask_size == 0) { | 
 
| 2851 | 0 | 1 | if (bits_size != mask_size) { | 
 
| 2855 | 0 | 1 | if (!*name) { | 
 
| 2879 | 1 | 0 | if (imgs) { | 
 
| 2880 | 1 | 0 | EXTEND(SP, count); | 
 
|  | 0 | 1 | EXTEND(SP, count); | 
 
| 2881 | 3 | 1 | for (i = 0; i < count; ++i) { | 
 
| 2984 | 1 | 4 | if (col_cnt <= 0) { | 
 
| 2987 | 4 | 0 | EXTEND(SP, col_cnt); | 
 
|  | 0 | 4 | EXTEND(SP, col_cnt); | 
 
| 2988 | 9 | 4 | for (i = 0; i < col_cnt; i++)  { | 
 
| 3005 | 0 | 0 | if (result) { | 
 
| 3007 | 0 | 0 | EXTEND(SP, 1); | 
 
| 3040 | 26 | 28 | for (i = 0; i < in_imgs_count; ++i) { | 
 
| 3042 | 0 | 26 | if (!sv_derived_from(sv1, "Imager::ImgRaw")) { | 
 
| 3046 | 25 | 3 | if (in_imgs_count > 0) { | 
 
| 3048 | 26 | 25 | for (i = 0; i < in_imgs_count; ++i) { | 
 
| 3050 | 0 | 26 | if (!sv_derived_from(sv1, "Imager::ImgRaw")) { | 
 
| 3053 | 26 | 0 | tmp = SvIV((SV*)SvRV(sv1)); | 
 
| 3062 | 25 | 3 | if (SvOK(sv_width)) | 
 
|  | 25 | 0 | if (SvOK(sv_width)) | 
 
|  | 0 | 25 | if (SvOK(sv_width)) | 
 
| 3063 | 3 | 0 | width = SvIV(sv_width); | 
 
| 3064 | 25 | 0 | else if (in_imgs_count) | 
 
| 3069 | 25 | 3 | if (SvOK(sv_height)) | 
 
|  | 25 | 0 | if (SvOK(sv_height)) | 
 
|  | 0 | 25 | if (SvOK(sv_height)) | 
 
| 3070 | 3 | 0 | height = SvIV(sv_height); | 
 
| 3071 | 25 | 0 | else if (in_imgs_count) | 
 
| 3076 | 28 | 0 | ops = (struct rm_op *)SvPV(sv_ops, ops_len); | 
 
| 3077 | 0 | 28 | if (ops_len % sizeof(struct rm_op)) | 
 
| 3083 | 248 | 28 | for (i = 0; i < n_regs_count; ++i) { | 
 
| 3085 | 102 | 146 | if (SvOK(sv1)) | 
 
|  | 102 | 0 | if (SvOK(sv1)) | 
 
|  | 0 | 102 | if (SvOK(sv1)) | 
 
| 3086 | 21 | 125 | n_regs[i] = SvNV(sv1); | 
 
| 3095 | 25 | 3 | if (in_imgs) | 
 
| 3099 | 27 | 1 | if (result) { | 
 
| 3101 | 0 | 27 | EXTEND(SP, 1); | 
 
| 3215 | 1 | 0 | if (size_xo != size_yo || size_xo != size_ac) | 
 
|  | 0 | 1 | if (size_xo != size_yo || size_xo != size_ac) | 
 
| 3217 | 0 | 1 | if (size_xo < 2) | 
 
| 3249 | 9 | 0 | if (!SvROK(ST(10)) || ! SvTYPE(SvRV(ST(10)))) | 
 
|  | 0 | 9 | if (!SvROK(ST(10)) || ! SvTYPE(SvRV(ST(10)))) | 
 
| 3276 | 5 | 0 | if (!SvROK(ST(9)) || ! SvTYPE(SvRV(ST(9)))) | 
 
|  | 0 | 5 | if (!SvROK(ST(9)) || ! SvTYPE(SvRV(ST(9)))) | 
 
| 3302 | 460 | 348 | while (errors[i].msg) { | 
 
| 3305 | 0 | 460 | if (!av_store(av, 0, sv)) { | 
 
| 3309 | 0 | 460 | if (!av_store(av, 1, sv)) { | 
 
| 3312 | 0 | 460 | XPUSHs(sv_2mortal(newRV_noinc((SV*)av))); | 
 
| 3339 | 0 | 1 | if (items != 5) | 
 
| 3341 | 1 | 0 | if (!SvROK(ST(1)) || ! SvTYPE(SvRV(ST(1)))) | 
 
|  | 0 | 1 | if (!SvROK(ST(1)) || ! SvTYPE(SvRV(ST(1)))) | 
 
| 3343 | 1 | 0 | if (!SvROK(ST(2)) || ! SvTYPE(SvRV(ST(2)))) | 
 
|  | 0 | 1 | if (!SvROK(ST(2)) || ! SvTYPE(SvRV(ST(2)))) | 
 
| 3345 | 1 | 0 | if (!SvROK(ST(3)) || ! SvTYPE(SvRV(ST(3)))) | 
 
|  | 0 | 1 | if (!SvROK(ST(3)) || ! SvTYPE(SvRV(ST(3)))) | 
 
| 3350 | 1 | 0 | dmeasure = (int)SvIV(ST(4)); | 
 
| 3352 | 0 | 1 | num = av_len(axx) < av_len(ayy) ? av_len(axx) : av_len(ayy); | 
 
| 3353 | 0 | 1 | num = num <= av_len(ac) ? num : av_len(ac); | 
 
| 3355 | 0 | 1 | if (num < 2) croak("Usage: i_nearest_color array refs must have more than 1 entry each"); | 
 
| 3359 | 3 | 1 | for(i = 0; i | 
 
| 3360 | 3 | 0 | xo[i]   = (i_img_dim)SvIV(* av_fetch(axx, i, 0)); | 
 
| 3361 | 3 | 0 | yo[i]   = (i_img_dim)SvIV(* av_fetch(ayy, i, 0)); | 
 
| 3363 | 0 | 3 | if ( !sv_derived_from(sv, "Imager::Color") ) { | 
 
| 3367 | 3 | 0 | ival[i] = *INT2PTR(i_color *, SvIV((SV *)SvRV(sv))); | 
 
| 3384 | 0 | 0 | if (rc!=NULL) { | 
 
| 3385 | 0 | 0 | if (evstr!=NULL) { | 
 
| 3386 | 0 | 0 | EXTEND(SP,2); | 
 
| 3390 | 0 | 0 | EXTEND(SP,1); | 
 
| 3411 | 0 | 0 | while( functions[i].name != NULL) { | 
 
| 3412 | 0 | 0 | EXTEND(SP,1); | 
 
| 3414 | 0 | 0 | EXTEND(SP,1); | 
 
| 3434 | 38 | 374 | if (i_gpix(im, x, y, RETVAL) != 0) { | 
 
| 3468 | 1 | 18 | if (!ip_handle_quant_opts2(aTHX_ &quant, quant_hv)) { | 
 
| 3472 | 17 | 1 | if (RETVAL) { | 
 
| 3491 | 0 | 5 | if (count <= 0) | 
 
| 3494 | 5 | 5 | for (i = 0; i < count; ++i) { | 
 
| 3496 | 5 | 0 | if (SvROK(img_sv) && sv_derived_from(img_sv, "Imager::ImgRaw")) { | 
 
|  | 5 | 0 | if (SvROK(img_sv) && sv_derived_from(img_sv, "Imager::ImgRaw")) { | 
 
| 3497 | 5 | 0 | imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(img_sv))); | 
 
| 3506 | 1 | 4 | if (!ip_handle_quant_opts2(aTHX_ &quant, quant_hv)) { | 
 
| 3510 | 4 | 0 | EXTEND(SP, quant.mc_count); | 
 
|  | 0 | 4 | EXTEND(SP, quant.mc_count); | 
 
| 3511 | 278 | 4 | for (i = 0; i < quant.mc_count; ++i) { | 
 
| 3528 | 10 | 0 | if (l < r) { | 
 
| 3530 | 10 | 0 | count = i_gpal(im, l, r, y, work); | 
 
| 3531 | 2 | 8 | if (GIMME_V == G_ARRAY) { | 
 
|  | 8 | 2 | if (GIMME_V == G_ARRAY) { | 
 
| 3532 | 8 | 0 | EXTEND(SP, count); | 
 
|  | 0 | 8 | EXTEND(SP, count); | 
 
| 3533 | 312 | 8 | for (i = 0; i < count; ++i) { | 
 
| 3538 | 0 | 2 | EXTEND(SP, 1); | 
 
| 3544 | 0 | 0 | if (GIMME_V != G_ARRAY) { | 
 
|  | 0 | 0 | if (GIMME_V != G_ARRAY) { | 
 
| 3545 | 0 | 0 | EXTEND(SP, 1); | 
 
| 3559 | 331 | 0 | if (items > 3) { | 
 
| 3561 | 60722 | 331 | for (i=0; i < items-3; ++i) { | 
 
| 3562 | 60720 | 2 | work[i] = SvIV(ST(i+3)); | 
 
| 3565 | 329 | 0 | RETVAL = i_ppal(im, l, l+items-3, y, work); | 
 
| 3583 | 4 | 0 | work = (i_palidx const *)SvPV(data, len); | 
 
| 3585 | 4 | 0 | if (len > 0) { | 
 
| 3587 | 2 | 0 | RETVAL = i_ppal(im, l, l+len, y, work); | 
 
| 3602 | 0 | 35 | if (items < 2) | 
 
| 3605 | 113 | 35 | for (i=0; i < items-1; ++i) { | 
 
| 3606 | 113 | 0 | if (sv_isobject(ST(i+1)) | 
 
| 3607 | 113 | 0 | && sv_derived_from(ST(i+1), "Imager::Color")) { | 
 
| 3608 | 113 | 0 | IV tmp = SvIV((SV *)SvRV(ST(i+1))); | 
 
| 3616 | 35 | 0 | RETVAL = i_addcolors(im, colors, items-1); | 
 
| 3629 | 0 | 9 | if (items < 3) | 
 
| 3632 | 13 | 9 | for (i=0; i < items-2; ++i) { | 
 
| 3633 | 13 | 0 | if (sv_isobject(ST(i+2)) | 
 
| 3634 | 13 | 0 | && sv_derived_from(ST(i+2), "Imager::Color")) { | 
 
| 3635 | 13 | 0 | IV tmp = SvIV((SV *)SvRV(ST(i+2))); | 
 
| 3643 | 9 | 0 | RETVAL = i_setcolors(im, index, colors, items-2); | 
 
| 3657 | 0 | 20 | if (count < 1) | 
 
| 3660 | 20 | 0 | if (i_getcolors(im, index, colors, count)) { | 
 
|  | 20 | 0 | if (i_getcolors(im, index, colors, count)) { | 
 
| 3661 | 20 | 0 | EXTEND(SP, count); | 
 
|  | 0 | 20 | EXTEND(SP, count); | 
 
| 3662 | 193 | 20 | for (i = 0; i < count; ++i) { | 
 
| 3681 | 9 | 0 | if (!i_findcolor(im, color, &RETVAL)) { | 
 
|  | 2 | 7 | if (!i_findcolor(im, color, &RETVAL)) { | 
 
| 3710 | 322 | 0 | if (l < r) { | 
 
| 3713 | 25 | 297 | if (GIMME_V == G_ARRAY) { | 
 
|  | 42 | 280 | if (GIMME_V == G_ARRAY) { | 
 
| 3714 | 42 | 0 | EXTEND(SP, count); | 
 
|  | 0 | 42 | EXTEND(SP, count); | 
 
| 3715 | 2017 | 42 | for (i = 0; i < count; ++i) | 
 
| 3719 | 0 | 280 | EXTEND(SP, 1); | 
 
| 3725 | 0 | 0 | if (GIMME_V != G_ARRAY) { | 
 
|  | 0 | 0 | if (GIMME_V != G_ARRAY) { | 
 
| 3745 | 0 | 6 | if (items < 8) | 
 
| 3747 | 6 | 0 | if (l < r) { | 
 
| 3749 | 6 | 0 | count = i_gsamp_bits(im, l, r, y, data, channels.channels, channels.count, bits); | 
 
| 3750 | 70 | 6 | for (i = 0; i < count; ++i) { | 
 
| 3781 | 0 | 2 | if (data_offset < 0) { | 
 
| 3784 | 0 | 2 | if (data_offset > data_count) { | 
 
| 3787 | 1 | 1 | if (pixel_count == -1 || | 
 
|  | 0 | 1 | if (pixel_count == -1 || | 
 
| 3794 | 42 | 2 | for (i = 0; i < data_used; ++i) | 
 
| 3795 | 0 | 42 | data[i] = SvUV(*av_fetch(data_av, data_offset + i, 0)); | 
 
| 3797 | 2 | 0 | RETVAL = i_psamp_bits(im, l, l + pixel_count, y, data, channels.channels, | 
 
| 3800 | 2 | 0 | if (data) | 
 
| 3818 | 1 | 81 | if (offset < 0) { | 
 
| 3822 | 4 | 77 | if (offset > 0) { | 
 
| 3823 | 1 | 3 | if (offset > data.count) { | 
 
| 3830 | 6 | 74 | if (width == -1 || | 
 
|  | 4 | 2 | if (width == -1 || | 
 
| 3852 | 1 | 81 | if (offset < 0) { | 
 
| 3856 | 4 | 77 | if (offset > 0) { | 
 
| 3857 | 1 | 3 | if (offset > data.count) { | 
 
| 3864 | 6 | 74 | if (width == -1 || | 
 
|  | 4 | 2 | if (width == -1 || | 
 
| 3883 | 10 | 7 | if (SvOK(ST(1))) { | 
 
|  | 10 | 0 | if (SvOK(ST(1))) { | 
 
|  | 0 | 10 | if (SvOK(ST(1))) { | 
 
| 3884 | 7 | 0 | if (!sv_isobject(ST(1)) | 
 
| 3885 | 0 | 7 | || !sv_derived_from(ST(1), "Imager::ImgRaw")) { | 
 
| 3888 | 7 | 0 | mask = INT2PTR(i_img *, SvIV((SV *)SvRV(ST(1)))); | 
 
| 3907 | 552 | 0 | if (items > 3) { | 
 
| 3908 | 158 | 394 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 0 | 158 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 0 | 0 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 0 | 0 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 152 | 6 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
| 3910 | 152 | 0 | work = (i_color *)SvPV(ST(3), len); | 
 
| 3912 | 0 | 152 | if (count * sizeof(i_color) != len) { | 
 
| 3919 | 26476 | 400 | for (i=0; i < items-3; ++i) { | 
 
| 3920 | 26476 | 0 | if (sv_isobject(ST(i+3)) | 
 
| 3921 | 26476 | 0 | && sv_derived_from(ST(i+3), "Imager::Color")) { | 
 
| 3922 | 26476 | 0 | IV tmp = SvIV((SV *)SvRV(ST(i+3))); | 
 
| 3958 | 15 | 0 | if (l < r) { | 
 
| 3961 | 3 | 12 | if (GIMME_V == G_ARRAY) { | 
 
|  | 13 | 2 | if (GIMME_V == G_ARRAY) { | 
 
| 3962 | 13 | 0 | EXTEND(SP, count); | 
 
|  | 0 | 13 | EXTEND(SP, count); | 
 
| 3963 | 614 | 13 | for (i = 0; i < count; ++i) | 
 
| 3967 | 0 | 2 | EXTEND(SP, 1); | 
 
| 3973 | 0 | 0 | if (GIMME_V != G_ARRAY) { | 
 
|  | 0 | 0 | if (GIMME_V != G_ARRAY) { | 
 
| 3989 | 226 | 0 | if (items > 3) { | 
 
| 3990 | 8 | 218 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 0 | 8 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 0 | 0 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 0 | 0 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
|  | 2 | 6 | if (items == 4 && SvOK(ST(3)) && !SvROK(ST(3))) { | 
 
| 3992 | 2 | 0 | work = (i_fcolor *)SvPV(ST(3), len); | 
 
| 3994 | 0 | 2 | if (count * sizeof(i_fcolor) != len) { | 
 
| 4001 | 20769 | 224 | for (i=0; i < items-3; ++i) { | 
 
| 4002 | 20769 | 0 | if (sv_isobject(ST(i+3)) | 
 
| 4003 | 20769 | 0 | && sv_derived_from(ST(i+3), "Imager::Color::Float")) { | 
 
| 4004 | 20769 | 0 | IV tmp = SvIV((SV *)SvRV(ST(i+3))); | 
 
| 4031 | 6 | 46 | if (i_gpixf(im, x, y, RETVAL) != 0) { | 
 
| 4048 | 21 | 0 | if (l < r) { | 
 
| 4052 | 5 | 16 | if (GIMME_V == G_ARRAY) { | 
 
|  | 17 | 4 | if (GIMME_V == G_ARRAY) { | 
 
| 4053 | 17 | 0 | EXTEND(SP, count); | 
 
|  | 0 | 17 | EXTEND(SP, count); | 
 
| 4054 | 111 | 17 | for (i = 0; i < count; ++i) { | 
 
| 4059 | 4 | 0 | else if (count) { | 
 
| 4060 | 0 | 4 | EXTEND(SP, 1); | 
 
| 4077 | 88 | 22 | for (i = 0; i < MAXCHANNELS; ++i) | 
 
| 4079 | 22 | 0 | if (l < r) { | 
 
| 4081 | 694 | 22 | for (i = 0; i < r-l; ++i) | 
 
| 4084 | 10 | 12 | if (GIMME_V == G_ARRAY) { | 
 
|  | 19 | 3 | if (GIMME_V == G_ARRAY) { | 
 
| 4085 | 19 | 0 | EXTEND(SP, count); | 
 
|  | 0 | 19 | EXTEND(SP, count); | 
 
| 4086 | 666 | 19 | for (i = 0; i < count; ++i) { | 
 
| 4091 | 3 | 0 | else if (count) { | 
 
| 4092 | 0 | 3 | EXTEND(SP, 1); | 
 
| 4134 | 0 | 31 | SvGETMAGIC(name_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(name_sv); | 
 
| 4135 | 2 | 29 | if (SvOK(name_sv)) | 
 
|  | 2 | 0 | if (SvOK(name_sv)) | 
 
|  | 0 | 2 | if (SvOK(name_sv)) | 
 
| 4136 | 25 | 4 | name = SvPV_nomg(name_sv, len); | 
 
| 4155 | 0 | 19 | SvGETMAGIC(name_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(name_sv); | 
 
| 4156 | 1 | 18 | if (SvOK(name_sv)) | 
 
|  | 1 | 0 | if (SvOK(name_sv)) | 
 
|  | 0 | 1 | if (SvOK(name_sv)) | 
 
| 4157 | 18 | 0 | name = SvPV_nomg(name_sv, len); | 
 
| 4160 | 0 | 19 | SvGETMAGIC(data_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(data_sv); | 
 
| 4161 | 1 | 18 | if (SvOK(data_sv)) | 
 
|  | 1 | 0 | if (SvOK(data_sv)) | 
 
|  | 0 | 1 | if (SvOK(data_sv)) | 
 
| 4162 | 18 | 0 | data = SvPV(data_sv, len); | 
 
| 4179 | 161 | 142 | if (i_tags_find(&im->tags, name, start, &entry)) { | 
 
| 4195 | 3 | 1 | if (i_tags_findn(&im->tags, code, start, &entry)) { | 
 
| 4236 | 160 | 0 | if (index >= 0 && index < im->tags.count) { | 
 
|  | 160 | 0 | if (index >= 0 && index < im->tags.count) { | 
 
| 4238 | 0 | 160 | EXTEND(SP, 5); | 
 
| 4240 | 158 | 2 | if (entry->name) { | 
 
| 4246 | 43 | 117 | if (entry->data) { | 
 
| 4263 | 1 | 1 | if (SvIOK(what_sv)) { | 
 
| 4264 | 1 | 0 | code = SvIV(what_sv); | 
 
| 4268 | 1 | 0 | name = SvPV_nolen(what_sv); | 
 
| 4271 | 2 | 0 | if (i_tags_get_string(&im->tags, name, code, buffer, sizeof(buffer))) { | 
 
| 4272 | 0 | 2 | EXTEND(SP, 1); | 
 
| 4325 | 23 | 6 | SvGETMAGIC(cust_hatch_sv); | 
 
|  | 0 | 23 | SvGETMAGIC(cust_hatch_sv); | 
 
| 4326 | 28 | 1 | if (SvOK(cust_hatch_sv)) { | 
 
|  | 28 | 0 | if (SvOK(cust_hatch_sv)) { | 
 
|  | 0 | 28 | if (SvOK(cust_hatch_sv)) { | 
 
| 4327 | 1 | 0 | cust_hatch = (unsigned char *)SvPV_nomg(cust_hatch_sv, len); | 
 
| 4348 | 0 | 2 | SvGETMAGIC(cust_hatch_sv); | 
 
|  | 0 | 0 | SvGETMAGIC(cust_hatch_sv); | 
 
| 4349 | 2 | 0 | if (SvOK(cust_hatch_sv)) { | 
 
|  | 2 | 0 | if (SvOK(cust_hatch_sv)) { | 
 
|  | 0 | 2 | if (SvOK(cust_hatch_sv)) { | 
 
| 4350 | 0 | 0 | cust_hatch = (unsigned char *)SvPV(cust_hatch_sv, len); | 
 
| 4373 | 8 | 1 | SvGETMAGIC(matrix_sv); | 
 
|  | 0 | 8 | SvGETMAGIC(matrix_sv); | 
 
| 4374 | 8 | 1 | if (!SvOK(matrix_sv)) { | 
 
|  | 8 | 0 | if (!SvOK(matrix_sv)) { | 
 
|  | 8 | 0 | if (!SvOK(matrix_sv)) { | 
 
| 4378 | 1 | 0 | if (!SvROK(matrix_sv) || SvTYPE(SvRV(matrix_sv)) != SVt_PVAV) | 
 
|  | 0 | 1 | if (!SvROK(matrix_sv) || SvTYPE(SvRV(matrix_sv)) != SVt_PVAV) | 
 
| 4382 | 0 | 1 | if (len > 9) | 
 
| 4384 | 9 | 1 | for (i = 0; i < len; ++i) { | 
 
| 4386 | 4 | 5 | matrix[i] = SvNV(sv1); | 
 
| 4388 | 0 | 1 | for (; i < 9; ++i) |