diff options
Diffstat (limited to 'src/Common/libzip/zipint.h')
-rw-r--r-- | src/Common/libzip/zipint.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/Common/libzip/zipint.h b/src/Common/libzip/zipint.h index 3c60eced..093a1b2d 100644 --- a/src/Common/libzip/zipint.h +++ b/src/Common/libzip/zipint.h @@ -3,7 +3,7 @@ /* zipint.h -- internal declarations. - Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner + Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner This file is part of libzip, a library to manipulate ZIP archives. The authors can be contacted at <libzip@nih.at> @@ -40,6 +40,10 @@ #include "compat.h" +#ifdef ZIP_ALLOCATE_BUFFER +#include <stdlib.h> +#endif + #include <zlib.h> #ifndef _ZIP_COMPILING_DEPRECATED @@ -367,6 +371,23 @@ struct zip_string { }; +/* byte array */ + +/* For performance, we usually keep 8k byte arrays on the stack. + However, there are (embedded) systems with a stack size of 12k; + for those, use malloc()/free() */ + +#ifdef ZIP_ALLOCATE_BUFFER +#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t *buf +#define byte_array_init(buf, size) (((buf) = (zip_uint8_t *)malloc(size)) != NULL) +#define byte_array_fini(buf) (free(buf)) +#else +#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t buf[size] +#define byte_array_init(buf, size) (1) +#define byte_array_fini(buf) ((void)0) +#endif + + /* bounds checked access to memory buffer */ struct zip_buffer { |