mirror of
https://github.com/postgres/postgres.git
synced 2025-05-05 09:19:17 +03:00
Add new function dsa_allocate0.
This does the same thing as dsa_allocate, except that the memory is guaranteed to be zero-filled on return. Dilip Kumar, adjusted by me.
This commit is contained in:
parent
3b7673388d
commit
9acb85597f
@ -755,6 +755,22 @@ dsa_allocate(dsa_area *area, Size size)
|
|||||||
return alloc_object(area, size_class);
|
return alloc_object(area, size_class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* As dsa_allocate, but zeroes the allocated memory.
|
||||||
|
*/
|
||||||
|
dsa_pointer
|
||||||
|
dsa_allocate0(dsa_area *area, Size size)
|
||||||
|
{
|
||||||
|
dsa_pointer dp;
|
||||||
|
char *object;
|
||||||
|
|
||||||
|
dp = dsa_allocate(area, size);
|
||||||
|
object = dsa_get_address(area, dp);
|
||||||
|
memset(object, 0, size);
|
||||||
|
|
||||||
|
return dp;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Free memory obtained with dsa_allocate.
|
* Free memory obtained with dsa_allocate.
|
||||||
*/
|
*/
|
||||||
|
@ -106,6 +106,7 @@ extern void dsa_set_size_limit(dsa_area *area, Size limit);
|
|||||||
extern Size dsa_minimum_size(void);
|
extern Size dsa_minimum_size(void);
|
||||||
extern dsa_handle dsa_get_handle(dsa_area *area);
|
extern dsa_handle dsa_get_handle(dsa_area *area);
|
||||||
extern dsa_pointer dsa_allocate(dsa_area *area, Size size);
|
extern dsa_pointer dsa_allocate(dsa_area *area, Size size);
|
||||||
|
extern dsa_pointer dsa_allocate0(dsa_area *area, Size size);
|
||||||
extern void dsa_free(dsa_area *area, dsa_pointer dp);
|
extern void dsa_free(dsa_area *area, dsa_pointer dp);
|
||||||
extern void *dsa_get_address(dsa_area *area, dsa_pointer dp);
|
extern void *dsa_get_address(dsa_area *area, dsa_pointer dp);
|
||||||
extern void dsa_trim(dsa_area *area);
|
extern void dsa_trim(dsa_area *area);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user