summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_decode_area.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/tests/test_decode_area.c b/tests/test_decode_area.c
index 5a36747a..e773bc66 100644
--- a/tests/test_decode_area.c
+++ b/tests/test_decode_area.c
@@ -367,24 +367,26 @@ int main(int argc, char** argv)
da_y0 = (OPJ_INT32)opj_uint_min(l_image->y1, (OPJ_UINT32)da_y0 + 1);
da_y1 = (OPJ_INT32)opj_uint_min(l_image->y1, (OPJ_UINT32)da_y1 + 1);
}
- l_sub_image = decode(quiet, input_file, da_x0, da_y0, da_x1, da_y1,
- NULL, NULL, NULL, NULL);
- if (!l_sub_image) {
- fprintf(stderr, "decode failed for %d,%d,%d,%d\n",
- da_x0, da_y0, da_x1, da_y1);
+ if (da_x0 < (OPJ_INT32)l_image->x1 && da_y0 < (OPJ_INT32)l_image->y1) {
+ l_sub_image = decode(quiet, input_file, da_x0, da_y0, da_x1, da_y1,
+ NULL, NULL, NULL, NULL);
+ if (!l_sub_image) {
+ fprintf(stderr, "decode failed for %d,%d,%d,%d\n",
+ da_x0, da_y0, da_x1, da_y1);
+ opj_image_destroy(l_sub_image);
+ opj_image_destroy(l_image);
+ return 1;
+ }
+
+ if (!check_consistency(l_image, l_sub_image)) {
+ fprintf(stderr, "Consistency checked failed for %d,%d,%d,%d\n",
+ da_x0, da_y0, da_x1, da_y1);
+ opj_image_destroy(l_sub_image);
+ opj_image_destroy(l_image);
+ return 1;
+ }
opj_image_destroy(l_sub_image);
- opj_image_destroy(l_image);
- return 1;
}
-
- if (!check_consistency(l_image, l_sub_image)) {
- fprintf(stderr, "Consistency checked failed for %d,%d,%d,%d\n",
- da_x0, da_y0, da_x1, da_y1);
- opj_image_destroy(l_sub_image);
- opj_image_destroy(l_image);
- return 1;
- }
- opj_image_destroy(l_sub_image);
}
}
}