diff options
-rw-r--r-- | include/erofs/defs.h | 5 | ||||
-rw-r--r-- | lib/cache.c | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/include/erofs/defs.h b/include/erofs/defs.h index 15db4e3..d3c1156 100644 --- a/include/erofs/defs.h +++ b/include/erofs/defs.h @@ -136,9 +136,10 @@ typedef int64_t s64; type __max2 = (y); \ __max1 > __max2 ? __max1: __max2; }) -#define sgn(x) ({ \ +#define cmpsgn(x, y) ({ \ typeof(x) _x = (x); \ -(_x > 0) - (_x < 0); }) + typeof(y) _y = (y); \ + (_x > _y) - (_x < _y); }) #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) diff --git a/lib/cache.c b/lib/cache.c index 41d2d5d..e61b201 100644 --- a/lib/cache.c +++ b/lib/cache.c @@ -80,9 +80,9 @@ static int __erofs_battach(struct erofs_buffer_block *bb, bool dryrun) { const erofs_off_t alignedoffset = roundup(bb->buffers.off, alignsize); - const int oob = sgn(roundup(bb->buffers.off % EROFS_BLKSIZ, - alignsize) + incr + extrasize - - EROFS_BLKSIZ); + const int oob = cmpsgn(roundup(bb->buffers.off % EROFS_BLKSIZ, + alignsize) + incr + extrasize, + EROFS_BLKSIZ); bool tailupdate = false; erofs_blk_t blkaddr; |