| @@ -106,8 +106,12 @@ av_alloc_size(1, 2) static inline void *av_malloc_array(size_t nmemb, size_t siz | |||||
| * reallocated. | * reallocated. | ||||
| * @return Pointer to a newly-reallocated block or NULL if the block | * @return Pointer to a newly-reallocated block or NULL if the block | ||||
| * cannot be reallocated or the function is used to free the memory block. | * cannot be reallocated or the function is used to free the memory block. | ||||
| * @note av_realloc() is not guaranteed to maintain the alignment of | |||||
| * pointers originating from the av_malloc() family of functions. | |||||
| * @warning Pointers originating from the av_malloc() family of functions must | |||||
| * not be passed to av_realloc(). The former can be implemented using | |||||
| * memalign() (or other functions), and there is no guarantee that | |||||
| * pointers from such functions can be passed to realloc() at all. | |||||
| * The situation is undefined according to POSIX and may crash with | |||||
| * some libc implementations. | |||||
| * @see av_fast_realloc() | * @see av_fast_realloc() | ||||
| */ | */ | ||||
| void *av_realloc(void *ptr, size_t size) av_alloc_size(2); | void *av_realloc(void *ptr, size_t size) av_alloc_size(2); | ||||
| @@ -122,8 +126,12 @@ void *av_realloc(void *ptr, size_t size) av_alloc_size(2); | |||||
| * @param size Size of the single element | * @param size Size of the single element | ||||
| * @return Pointer to a newly-reallocated block or NULL if the block | * @return Pointer to a newly-reallocated block or NULL if the block | ||||
| * cannot be reallocated or the function is used to free the memory block. | * cannot be reallocated or the function is used to free the memory block. | ||||
| * @note av_realloc_array() is not guaranteed to maintain the alignment of | |||||
| * pointers originating from the av_malloc() family of functions. | |||||
| * @warning Pointers originating from the av_malloc() family of functions must | |||||
| * not be passed to av_realloc(). The former can be implemented using | |||||
| * memalign() (or other functions), and there is no guarantee that | |||||
| * pointers from such functions can be passed to realloc() at all. | |||||
| * The situation is undefined according to POSIX and may crash with | |||||
| * some libc implementations. | |||||
| */ | */ | ||||
| av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size); | av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size); | ||||
| @@ -137,8 +145,12 @@ av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size) | |||||
| * @param nmemb Number of elements | * @param nmemb Number of elements | ||||
| * @param size Size of the single element | * @param size Size of the single element | ||||
| * @return Zero on success, an AVERROR error code on failure. | * @return Zero on success, an AVERROR error code on failure. | ||||
| * @note av_reallocp_array() is not guaranteed to maintain the alignment of | |||||
| * pointers originating from the av_malloc() family of functions. | |||||
| * @warning Pointers originating from the av_malloc() family of functions must | |||||
| * not be passed to av_realloc(). The former can be implemented using | |||||
| * memalign() (or other functions), and there is no guarantee that | |||||
| * pointers from such functions can be passed to realloc() at all. | |||||
| * The situation is undefined according to POSIX and may crash with | |||||
| * some libc implementations. | |||||
| */ | */ | ||||
| av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size); | av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size); | ||||