summaryrefslogtreecommitdiffstats
path: root/modules/brotli/enc/memory.h
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-11-13 15:59:29 +0000
committerMoonchild <moonchild@palemoon.org>2020-11-18 10:58:22 +0000
commitb645d59b1e170af1cb0963935bd8c915e56c431c (patch)
tree49fdc8001d5758558ada7a711f31e08095388294 /modules/brotli/enc/memory.h
parent71e0814af25e8619782294e65aa42aa1044dabdc (diff)
downloadUXP-b645d59b1e170af1cb0963935bd8c915e56c431c.tar
UXP-b645d59b1e170af1cb0963935bd8c915e56c431c.tar.gz
UXP-b645d59b1e170af1cb0963935bd8c915e56c431c.tar.lz
UXP-b645d59b1e170af1cb0963935bd8c915e56c431c.tar.xz
UXP-b645d59b1e170af1cb0963935bd8c915e56c431c.zip
Issue #1683 - Update Brotli lib to 1.0.9
Diffstat (limited to 'modules/brotli/enc/memory.h')
-rw-r--r--modules/brotli/enc/memory.h36
1 files changed, 24 insertions, 12 deletions
diff --git a/modules/brotli/enc/memory.h b/modules/brotli/enc/memory.h
index ab928d019..832e7b2b6 100644
--- a/modules/brotli/enc/memory.h
+++ b/modules/brotli/enc/memory.h
@@ -56,6 +56,18 @@ BROTLI_INTERNAL void BrotliFree(MemoryManager* m, void* p);
#define BROTLI_IS_OOM(M) (!!(M)->is_oom)
#endif /* BROTLI_ENCODER_EXIT_ON_OOM */
+/*
+BROTLI_IS_NULL is a fake check, BROTLI_IS_OOM does the heavy lifting.
+The only purpose of it is to explain static analyzers the state of things.
+NB: use ONLY together with BROTLI_IS_OOM
+ AND ONLY for allocations in the current scope.
+ */
+#if defined(__clang_analyzer__) && !defined(BROTLI_ENCODER_EXIT_ON_OOM)
+#define BROTLI_IS_NULL(A) ((A) == nullptr)
+#else /* defined(__clang_analyzer__) */
+#define BROTLI_IS_NULL(A) (!!0)
+#endif /* defined(__clang_analyzer__) */
+
BROTLI_INTERNAL void BrotliWipeOutMemoryManager(MemoryManager* m);
/*
@@ -66,18 +78,18 @@ A: array
C: capacity
R: requested size
*/
-#define BROTLI_ENSURE_CAPACITY(M, T, A, C, R) { \
- if (C < (R)) { \
- size_t _new_size = (C == 0) ? (R) : C; \
- T* new_array; \
- while (_new_size < (R)) _new_size *= 2; \
- new_array = BROTLI_ALLOC((M), T, _new_size); \
- if (!BROTLI_IS_OOM(M) && C != 0) \
- memcpy(new_array, A, C * sizeof(T)); \
- BROTLI_FREE((M), A); \
- A = new_array; \
- C = _new_size; \
- } \
+#define BROTLI_ENSURE_CAPACITY(M, T, A, C, R) { \
+ if (C < (R)) { \
+ size_t _new_size = (C == 0) ? (R) : C; \
+ T* new_array; \
+ while (_new_size < (R)) _new_size *= 2; \
+ new_array = BROTLI_ALLOC((M), T, _new_size); \
+ if (!BROTLI_IS_OOM(M) && !BROTLI_IS_NULL(new_array) && C != 0) \
+ memcpy(new_array, A, C * sizeof(T)); \
+ BROTLI_FREE((M), A); \
+ A = new_array; \
+ C = _new_size; \
+ } \
}
/*