From 210af322b023d2c1e7a6f748310c7add8909af8a Mon Sep 17 00:00:00 2001 From: tth Date: Fri, 15 Nov 2019 06:07:06 +0100 Subject: [PATCH] error handling --- lib/contrast.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/contrast.c b/lib/contrast.c index 377ae57..2232389 100644 --- a/lib/contrast.c +++ b/lib/contrast.c @@ -1,3 +1,7 @@ +/* + * contrast.c - part of libfloatimg + */ + #include #include #include @@ -9,6 +13,9 @@ extern int verbosity; /* ---------------------------------------------------------------- */ +/* + * if the second parameter is NULL, operate 'in-place' + */ int fimg_square_root(FloatImg *s, FloatImg *d, double maxval) { int nbre, idx; @@ -23,6 +30,13 @@ if (s->type != FIMG_TYPE_RGB) { if (NULL==d) { d = s; } +else { + if (d->type != FIMG_TYPE_RGB) { + fprintf(stderr, "%s : dst type %d invalide\n", + __func__, d->type); + return -4; + } + } nbre = s->width * s->height * 3; @@ -52,7 +66,7 @@ if (NULL==d) { else { if (d->type != FIMG_TYPE_RGB) { fprintf(stderr, "%s : dst type %d invalide\n", - __func__, s->type); + __func__, d->type); return -4; } } @@ -73,7 +87,6 @@ return 0; #macro Cos_01( X ) (0.5-0.5*cos( 3.141592654 * X)) #end - */ int fimg_cos_01(FloatImg *s, FloatImg *d, double maxval) { @@ -89,6 +102,13 @@ if (s->type != FIMG_TYPE_RGB) { if (NULL==d) { d = s; } +else { + if (d->type != FIMG_TYPE_RGB) { + fprintf(stderr, "%s : dst type %d invalide\n", + __func__, d->type); + return -4; + } + } nbre = s->width * s->height * 3;