mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-08 13:29:59 -05:00
malloc: implement pa_xrenew()
This commit is contained in:
parent
4f36cc76f2
commit
697b8de96f
1 changed files with 12 additions and 1 deletions
|
|
@ -88,9 +88,20 @@ static inline void* _pa_xnewdup_internal(const void *p, size_t n, size_t k) {
|
|||
return pa_xmemdup(p, n*k);
|
||||
}
|
||||
|
||||
/** Same as pa_xnew() but set the memory to zero */
|
||||
/** Same as pa_xnew() but duplicate the specified data */
|
||||
#define pa_xnewdup(type, p, n) ((type*) _pa_xnewdup_internal((p), (n), sizeof(type)))
|
||||
|
||||
/** Internal helper for pa_xrenew() */
|
||||
static void* _pa_xrenew_internal(void *p, size_t n, size_t k) PA_GCC_MALLOC PA_GCC_ALLOC_SIZE2(2,3);
|
||||
|
||||
static inline void* _pa_xrenew_internal(void *p, size_t n, size_t k) {
|
||||
assert(n < INT_MAX/k);
|
||||
return pa_xrealloc(p, n*k);
|
||||
}
|
||||
|
||||
/** Reallocate n new structures of the specified type. */
|
||||
#define pa_xrenew(type, p, n) ((type*) _pa_xrenew_internal(p, (n), sizeof(type)))
|
||||
|
||||
PA_C_DECL_END
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue