diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/gis_impl.h b/CGAL_ImageIO/src/CGAL_ImageIO/gis_impl.h index dd69d50982e..7525c47c28e 100644 --- a/CGAL_ImageIO/src/CGAL_ImageIO/gis_impl.h +++ b/CGAL_ImageIO/src/CGAL_ImageIO/gis_impl.h @@ -48,7 +48,7 @@ PTRIMAGE_FORMAT createGisFormat() { CGAL_INLINE_FUNCTION int writeGis( char *name, _image* im) { char *outputName; - int res; + std::size_t res; std::size_t length, extLength = 0; length=strlen(name); @@ -142,8 +142,8 @@ int writeGis( char *name, _image* im) { if ( j(ImageIO_write( im, str, strlen( str ))); - if ( res <= 0 ) { + res = ImageIO_write( im, str, strlen( str )); + if ( res < strlen(str) ) { fprintf(stderr, "writeGis: error when writing data in \'%s\'\n", outputName); if ( outputName != NULL ) ImageIO_free( outputName ); return( -3 ); @@ -161,8 +161,8 @@ int writeGis( char *name, _image* im) { if ( j(ImageIO_write( im, str, strlen( str ))); - if ( res <= 0 ) { + res = ImageIO_write( im, str, strlen( str )); + if ( res < strlen(str) ) { fprintf(stderr, "writeGis: error when writing data in \'%s\'\n", outputName); if ( outputName != NULL ) ImageIO_free( outputName ); return( -3 ); @@ -188,8 +188,8 @@ int writeGis( char *name, _image* im) { if ( j(ImageIO_write(im, str, strlen(str))); - if ( res <= 0 ) { + res = ImageIO_write( im, str, strlen( str )); + if ( res < strlen(str) ) { fprintf(stderr, "writeGis: error when writing data in \'%s\'\n", outputName); if ( outputName != NULL ) ImageIO_free( outputName ); return( -3 ); @@ -207,8 +207,8 @@ int writeGis( char *name, _image* im) { if ( j(ImageIO_write(im, str, strlen(str))); - if ( res <= 0 ) { + res = ImageIO_write( im, str, strlen( str )); + if ( res < strlen(str) ) { fprintf(stderr, "writeGis: error when writing data in \'%s\'\n", outputName); if ( outputName != NULL ) ImageIO_free( outputName ); return( -3 ); @@ -222,13 +222,14 @@ int writeGis( char *name, _image* im) { } /* end of switch( im->wordKind ) */ ImageIO_free( str ); + if (outputName != NULL) ImageIO_free(outputName); + return static_cast(res); } else { - res = _writeInrimageData(im); + bool ret = _writeInrimageData(im); + if (outputName != NULL) ImageIO_free(outputName); + return (ret ? 1 : -1); } - if ( outputName != NULL ) ImageIO_free( outputName ); - return res; - } CGAL_INLINE_FUNCTION diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/inr.h b/CGAL_ImageIO/src/CGAL_ImageIO/inr.h index 5ec646040ba..8bf7aa8373e 100644 --- a/CGAL_ImageIO/src/CGAL_ImageIO/inr.h +++ b/CGAL_ImageIO/src/CGAL_ImageIO/inr.h @@ -36,7 +36,7 @@ int _writeInrimageHeader(const _image *im, /** Writes the given image body in an already opened file. @param im image descriptor */ -int _writeInrimageData(const _image *im); +bool _writeInrimageData(const _image *im); /** read header from an opened inrimage file @param im opened inrmage descriptor */ diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/inr_impl.h b/CGAL_ImageIO/src/CGAL_ImageIO/inr_impl.h index 7b16dbb4788..1a212182853 100644 --- a/CGAL_ImageIO/src/CGAL_ImageIO/inr_impl.h +++ b/CGAL_ImageIO/src/CGAL_ImageIO/inr_impl.h @@ -194,7 +194,7 @@ int _writeInrimageHeader(const _image *im, ENDIANNESS end) { /* Writes the given image body in an already opened file.*/ CGAL_INLINE_FUNCTION -int _writeInrimageData(const _image *im) { +bool _writeInrimageData(const _image *im) { std::size_t size, nbv, nwrt, i, v; unsigned char **vp; @@ -204,8 +204,8 @@ int _writeInrimageData(const _image *im) { if(im->vectMode != VM_NON_INTERLACED) { size = im->xdim * im->ydim * im->zdim * im->vdim * im->wdim; nwrt = ImageIO_write(im, im->data, size); - if(nwrt != size) return -1; - else return 1; + if(nwrt != size) return false; + else return true; } /* non interlaced vectors: interlace for saving */ @@ -218,14 +218,14 @@ int _writeInrimageData(const _image *im) { for(i = 0; i < nbv; i++) for(v = 0; v < im->vdim; v++) { if(ImageIO_write(im, (const void *) vp[v], im->wdim) != im->wdim) - return -1; + return false; vp[v] += im->wdim; } ImageIO_free(vp); - return 1; + return true; } } - else return -1; + else return false; } @@ -486,14 +486,13 @@ int writeInrimage(char *name,_image *im) { return( res ); } - res = _writeInrimageData( im ); - if (res < 0) { + if (!_writeInrimageData(im)) { fprintf(stderr, "writeInrimage: error: unable to write data of \'%s\'\n", name); ImageIO_close( im ); im->fd = NULL; im->openMode = OM_CLOSE; - return( res ); + return -1; } ImageIO_close( im );