Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/extract/src/mem.c @ 3:2c135c81b16c
MERGE: upstream PyMuPDF 1.26.4 with MuPDF 1.26.7
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:44:09 +0200 |
| parents | b50eed0cc0ef |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/thirdparty/extract/src/mem.c Mon Sep 15 11:44:09 2025 +0200 @@ -0,0 +1,66 @@ +#include "extract/alloc.h" + +#include "mem.h" + +#include <assert.h> +#include <stdio.h> +#include <string.h> + +#include "compat_va_copy.h" + + +void extract_bzero(void *b, size_t len) +{ + memset(b, 0, len); +} + +int extract_vasprintf(extract_alloc_t *alloc, char **out, const char *format, va_list va) +{ + int n; + int ret; + va_list va2; + + va_copy(va2, va); + n = vsnprintf(NULL, 0, format, va); + if (n < 0) + { + ret = n; + goto end; + } + if (extract_malloc(alloc, out, n + 1)) + { + ret = -1; + goto end; + } + vsnprintf(*out, n + 1, format, va2); + + ret = 0; +end: + + va_end(va2); + + return ret; +} + + +int extract_asprintf(extract_alloc_t *alloc, char **out, const char *format, ...) +{ + va_list va; + int ret; + + va_start(va, format); + ret = extract_vasprintf(alloc, out, format, va); + va_end(va); + + return ret; +} + +int extract_strdup(extract_alloc_t *alloc, const char *s, char **o_out) +{ + size_t l = strlen(s) + 1; + + if (extract_malloc(alloc, o_out, l)) return -1; + memcpy(*o_out, s, l); + + return 0; +}
