@@ -316,28 +316,28 @@ static void ba_leak_init_once(void) {
316316 utils_init_once (& Base_alloc_leak_initialized , ba_leak_create );
317317}
318318
319- static inline void * ba_leak_malloc ( size_t size ) {
319+ static inline void * ba_leak_aligned_alloc ( size_t alignment , size_t size ) {
320320 ba_leak_init_once ();
321- return umf_ba_linear_alloc (Base_alloc_leak , size );
321+ void * ptr = umf_ba_linear_alloc (Base_alloc_leak , size + alignment );
322+ return (void * )ALIGN_UP_SAFE ((uintptr_t )ptr , alignment );
323+ }
324+
325+ static inline void * ba_leak_malloc (size_t size ) {
326+ return ba_leak_aligned_alloc (0 , size );
322327}
323328
324329static inline void * ba_leak_calloc (size_t nmemb , size_t size ) {
325330 ba_leak_init_once ();
326331 // umf_ba_linear_alloc() returns zeroed memory
327- return umf_ba_linear_alloc (Base_alloc_leak , nmemb * size );
332+ // so ba_leak_aligned_alloc() does too
333+ return ba_leak_aligned_alloc (0 , nmemb * size );
328334}
329335
330336static inline void * ba_leak_realloc (void * ptr , size_t size , size_t max_size ) {
331337 ba_leak_init_once ();
332338 return ba_generic_realloc (Base_alloc_leak , ptr , size , max_size );
333339}
334340
335- static inline void * ba_leak_aligned_alloc (size_t alignment , size_t size ) {
336- ba_leak_init_once ();
337- void * ptr = umf_ba_linear_alloc (Base_alloc_leak , size + alignment );
338- return (void * )ALIGN_UP_SAFE ((uintptr_t )ptr , alignment );
339- }
340-
341341static inline int ba_leak_free (void * ptr ) {
342342 ba_leak_init_once ();
343343 return umf_ba_linear_free (Base_alloc_leak , ptr );
0 commit comments