Remove incorrect uses of __attribute__((__malloc__)).
xrealloc() is obviously incorrect, modern GCC docs even mention realloc() as an example where this attribute cannot be used. liblzma's lzma_alloc() and lzma_alloc_zero() would be correct uses most of the time but custom allocators may use a memory pool or otherwise hold the pointer so aliasing issues could happen in theory. The xstrdup() case likely was correct but I removed it anyway. Now there are no __malloc__ attributes left in the code. The allocations aren't in hot paths so this should make no practical difference.
This commit is contained in:
parent
589b4cba22
commit
359e5c6cb1
|
@ -35,7 +35,7 @@ lzma_version_string(void)
|
||||||
// Memory allocation //
|
// Memory allocation //
|
||||||
///////////////////////
|
///////////////////////
|
||||||
|
|
||||||
extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1)
|
extern void * lzma_attr_alloc_size(1)
|
||||||
lzma_alloc(size_t size, const lzma_allocator *allocator)
|
lzma_alloc(size_t size, const lzma_allocator *allocator)
|
||||||
{
|
{
|
||||||
// Some malloc() variants return NULL if called with size == 0.
|
// Some malloc() variants return NULL if called with size == 0.
|
||||||
|
@ -53,7 +53,7 @@ lzma_alloc(size_t size, const lzma_allocator *allocator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1)
|
extern void * lzma_attr_alloc_size(1)
|
||||||
lzma_alloc_zero(size_t size, const lzma_allocator *allocator)
|
lzma_alloc_zero(size_t size, const lzma_allocator *allocator)
|
||||||
{
|
{
|
||||||
// Some calloc() variants return NULL if called with size == 0.
|
// Some calloc() variants return NULL if called with size == 0.
|
||||||
|
|
|
@ -298,12 +298,12 @@ struct lzma_internal_s {
|
||||||
|
|
||||||
/// Allocates memory
|
/// Allocates memory
|
||||||
extern void *lzma_alloc(size_t size, const lzma_allocator *allocator)
|
extern void *lzma_alloc(size_t size, const lzma_allocator *allocator)
|
||||||
lzma_attribute((__malloc__)) lzma_attr_alloc_size(1);
|
lzma_attr_alloc_size(1);
|
||||||
|
|
||||||
/// Allocates memory and zeroes it (like calloc()). This can be faster
|
/// Allocates memory and zeroes it (like calloc()). This can be faster
|
||||||
/// than lzma_alloc() + memzero() while being backward compatible with
|
/// than lzma_alloc() + memzero() while being backward compatible with
|
||||||
/// custom allocators.
|
/// custom allocators.
|
||||||
extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1)
|
extern void * lzma_attr_alloc_size(1)
|
||||||
lzma_alloc_zero(size_t size, const lzma_allocator *allocator);
|
lzma_alloc_zero(size_t size, const lzma_allocator *allocator);
|
||||||
|
|
||||||
/// Frees memory
|
/// Frees memory
|
||||||
|
|
|
@ -20,11 +20,11 @@
|
||||||
|
|
||||||
/// \brief Safe realloc() that never returns NULL
|
/// \brief Safe realloc() that never returns NULL
|
||||||
extern void *xrealloc(void *ptr, size_t size)
|
extern void *xrealloc(void *ptr, size_t size)
|
||||||
lzma_attribute((__malloc__)) lzma_attr_alloc_size(2);
|
lzma_attr_alloc_size(2);
|
||||||
|
|
||||||
|
|
||||||
/// \brief Safe strdup() that never returns NULL
|
/// \brief Safe strdup() that never returns NULL
|
||||||
extern char *xstrdup(const char *src) lzma_attribute((__malloc__));
|
extern char *xstrdup(const char *src);
|
||||||
|
|
||||||
|
|
||||||
/// \brief Fancy version of strtoull()
|
/// \brief Fancy version of strtoull()
|
||||||
|
|
Loading…
Reference in New Issue