78 #include <jasper/jas_config.h>    80 #include <jasper/jas_types.h>    95 #define JAS_KIBI        JAS_CAST(size_t, 1024)    96 #define JAS_MEBI        (JAS_KIBI * JAS_KIBI)   100         (((x) >= 0) ? (x) : (-(x)))   103 #define JAS_MIN(x, y) \   104         (((x) < (y)) ? (x) : (y))   107 #define JAS_MAX(x, y) \   108         (((x) > (y)) ? (x) : (y))   112 #define JAS_MOD(x, y) \   113         (((x) < 0) ? (((-x) % (y)) ? ((y) - ((-(x)) % (y))) : (0)) : ((x) % (y)))   117 #define JAS_ONES(n) \   124 JAS_ATTRIBUTE_DISABLE_USAN
   125 inline static int jas_int_asr(
int x, 
int n)
   129         assert(((-1) >> 1) == -1);
   137 JAS_ATTRIBUTE_DISABLE_USAN
   138 inline static int jas_int_asl(
int x, 
int n)
   142         assert(((-1) << 1) == -2);
   150 JAS_ATTRIBUTE_DISABLE_USAN
   151 inline static int jas_fast32_asr(int_fast32_t x, 
int n)
   155         assert(((JAS_CAST(int_fast32_t, -1)) >> 1) == JAS_CAST(int_fast32_t, -1));
   163 JAS_ATTRIBUTE_DISABLE_USAN
   164 inline static int jas_fast32_asl(int_fast32_t x, 
int n)
   168         assert(((JAS_CAST(int_fast32_t, -1)) << 1) == JAS_CAST(int_fast32_t, -2));
   181 inline static bool jas_safe_size_mul(
size_t x, 
size_t y, 
size_t *result)
   184         if (x && y > SIZE_MAX / x) {
   195 inline static bool jas_safe_size_mul3(
size_t a, 
size_t b, 
size_t c,
   199         if (!jas_safe_size_mul(a, b, &tmp) ||
   200           !jas_safe_size_mul(tmp, c, &tmp)) {
   210 inline static bool jas_safe_size_add(
size_t x, 
size_t y, 
size_t *result)
   212         if (y > SIZE_MAX - x) {
   222 inline static bool jas_safe_size_sub(
size_t x, 
size_t y, 
size_t *result)
   234 inline static bool jas_safe_intfast32_mul(int_fast32_t x, int_fast32_t y,
   235   int_fast32_t *result)
   241                         if (x > INT_FAST32_MAX / y) {
   246                         if (y < INT_FAST32_MIN / x) {
   254                         if (x < INT_FAST32_MIN / y) {
   258                         if (x != 0 && y < INT_FAST32_MAX / x) {
   271 inline static bool jas_safe_intfast32_mul3(int_fast32_t a, int_fast32_t b,
   272   int_fast32_t c, int_fast32_t *result)
   275         if (!jas_safe_intfast32_mul(a, b, &tmp) ||
   276           !jas_safe_intfast32_mul(tmp, c, &tmp)) {
   286 inline static bool jas_safe_intfast32_add(int_fast32_t x, int_fast32_t y,
   287   int_fast32_t *result)
   289         if ((y > 0 && x > INT_FAST32_MAX - y) ||
   290           (y < 0 && x < INT_FAST32_MIN - y)) {