X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Futil.h;h=889a3f56c70559c6ba6edb4545328aacb0b64521;hp=177e1190f94a029df32a05e2eb4758a509b2a113;hb=d55cda59032e0abe5f71cd6f16ade943d2713fee;hpb=e8c3ca2d1d0cac3d64985b45a9f654d2029a7518 diff --git a/include/wimlib/util.h b/include/wimlib/util.h index 177e1190..889a3f56 100644 --- a/include/wimlib/util.h +++ b/include/wimlib/util.h @@ -50,17 +50,29 @@ #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) #ifdef ENABLE_CUSTOM_MEMORY_ALLOCATOR -extern void *(*wimlib_malloc_func)(size_t); -extern void (*wimlib_free_func)(void *); -extern void *(*wimlib_realloc_func)(void *, size_t); -extern void *wimlib_calloc(size_t nmemb, size_t size); +extern void * +wimlib_malloc(size_t) _malloc_attribute; + +extern void +wimlib_free_memory(void *p); + +extern void * +wimlib_realloc(void *, size_t) _warn_unused_result_attribute; + +extern void * +wimlib_calloc(size_t nmemb, size_t size) _malloc_attribute; + #ifdef __WIN32__ -extern wchar_t *wimlib_wcsdup(const wchar_t *str); +extern wchar_t * +wimlib_wcsdup(const wchar_t *str) _malloc_attribute; + #endif -extern char *wimlib_strdup(const char *str); -# define MALLOC wimlib_malloc_func -# define FREE wimlib_free_func -# define REALLOC wimlib_realloc_func +extern char * +wimlib_strdup(const char *str) _malloc_attribute; + +# define MALLOC wimlib_malloc +# define FREE wimlib_free_memory +# define REALLOC wimlib_realloc # define CALLOC wimlib_calloc # define STRDUP wimlib_strdup # define WSTRDUP wimlib_wcsdup @@ -75,6 +87,8 @@ extern char *wimlib_strdup(const char *str); # define WSTRDUP wcsdup #endif /* !ENABLE_CUSTOM_MEMORY_ALLOCATOR */ +extern void * +memdup(const void *mem, size_t size) _malloc_attribute; /* util.c */ extern void @@ -108,4 +122,10 @@ hash_u64(u64 n) return n * 0x9e37fffffffc0001ULL; } +#ifdef __WIN32__ +# define OS_PREFERRED_PATH_SEPARATOR L'\\' +#else +# define OS_PREFERRED_PATH_SEPARATOR '/' +#endif + #endif /* _WIMLIB_UTIL_H */