summaryrefslogtreecommitdiff
path: root/src/cairo-malloc-private.h
diff options
context:
space:
mode:
authorAnton Danilkin <afdw@yandex.ru>2021-04-13 19:10:40 +0200
committerAnton Danilkin <afdw@yandex.ru>2021-04-13 19:20:05 +0200
commit67099a091ec289b5190fbce4dd12ff710b8706a0 (patch)
tree178f185c6f0cd9ff9addcac581ab441eabd974f7 /src/cairo-malloc-private.h
parentc287fb3a1f3e9a19abf062ac773f4c6a5118100b (diff)
downloadcairo-67099a091ec289b5190fbce4dd12ff710b8706a0.tar.gz
Change int to size_t in the _cairo_malloc function family
This should allow to use them for allocating large amounts of memory. Also use explicit checks for zeros to not make the compiler think that it is a boolean context.
Diffstat (limited to 'src/cairo-malloc-private.h')
-rw-r--r--src/cairo-malloc-private.h22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/cairo-malloc-private.h b/src/cairo-malloc-private.h
index 570f7cb0e..40314e1ce 100644
--- a/src/cairo-malloc-private.h
+++ b/src/cairo-malloc-private.h
@@ -60,7 +60,7 @@
**/
#define _cairo_malloc(size) \
- ((size) > 0 ? malloc((unsigned) (size)) : NULL)
+ ((size) != 0 ? malloc(size) : NULL)
/**
* _cairo_malloc_ab:
@@ -80,8 +80,8 @@
**/
#define _cairo_malloc_ab(a, size) \
- ((size) && (unsigned) (a) >= INT32_MAX / (unsigned) (size) ? NULL : \
- _cairo_malloc((unsigned) (a) * (unsigned) (size)))
+ ((size) != 0 && (size_t) (a) >= SIZE_MAX / (size_t) (size) ? NULL : \
+ _cairo_malloc((size_t) (a) * (size_t) (size)))
/**
* _cairo_realloc_ab:
@@ -102,8 +102,8 @@
**/
#define _cairo_realloc_ab(ptr, a, size) \
- ((size) && (unsigned) (a) >= INT32_MAX / (unsigned) (size) ? NULL : \
- realloc(ptr, (unsigned) (a) * (unsigned) (size)))
+ ((size) != 0 && (size_t) (a) >= SIZE_MAX / (size_t) (size) ? NULL : \
+ realloc(ptr, (size_t) (a) * (size_t) (size)))
/**
* _cairo_malloc_abc:
@@ -123,9 +123,9 @@
**/
#define _cairo_malloc_abc(a, b, size) \
- ((b) && (unsigned) (a) >= INT32_MAX / (unsigned) (b) ? NULL : \
- (size) && (unsigned) ((a)*(b)) >= INT32_MAX / (unsigned) (size) ? NULL : \
- _cairo_malloc((unsigned) (a) * (unsigned) (b) * (unsigned) (size)))
+ ((b) != 0 && (size_t) (a) >= SIZE_MAX / (size_t) (b) ? NULL : \
+ (size) != 0 && (size_t) ((a)*(b)) >= SIZE_MAX / (size_t) (size) ? NULL : \
+ _cairo_malloc((size_t) (a) * (size_t) (b) * (size_t) (size)))
/**
* _cairo_malloc_ab_plus_c:
@@ -142,8 +142,8 @@
**/
#define _cairo_malloc_ab_plus_c(a, size, c) \
- ((size) && (unsigned) (a) >= INT32_MAX / (unsigned) (size) ? NULL : \
- (unsigned) (c) >= INT32_MAX - (unsigned) (a) * (unsigned) (size) ? NULL : \
- _cairo_malloc((unsigned) (a) * (unsigned) (size) + (unsigned) (c)))
+ ((size) != 0 && (size_t) (a) >= SIZE_MAX / (size_t) (size) ? NULL : \
+ (size_t) (c) >= SIZE_MAX - (size_t) (a) * (size_t) (size) ? NULL : \
+ _cairo_malloc((size_t) (a) * (size_t) (size) + (size_t) (c)))
#endif /* CAIRO_MALLOC_PRIVATE_H */