@@ -170,13 +170,6 @@ static int get_system_allocator_symbols(void) {
170170 return 0 ;
171171 }
172172
173- * ((void * * )(& System_aligned_alloc )) = NULL ;
174- * ((void * * )(& System_calloc )) = NULL ;
175- * ((void * * )(& System_free )) = NULL ;
176- * ((void * * )(& System_malloc )) = NULL ;
177- * ((void * * )(& System_malloc_usable_size )) = NULL ;
178- * ((void * * )(& System_realloc )) = NULL ;
179-
180173 return -1 ;
181174}
182175#endif /* _WIN32 */
@@ -323,28 +316,28 @@ static void ba_leak_init_once(void) {
323316 utils_init_once (& Base_alloc_leak_initialized , ba_leak_create );
324317}
325318
326- static inline void * ba_leak_malloc ( size_t size ) {
319+ static inline void * ba_leak_aligned_alloc ( size_t alignment , size_t size ) {
327320 ba_leak_init_once ();
328- 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 );
329327}
330328
331329static inline void * ba_leak_calloc (size_t nmemb , size_t size ) {
332330 ba_leak_init_once ();
333331 // umf_ba_linear_alloc() returns zeroed memory
334- 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 );
335334}
336335
337336static inline void * ba_leak_realloc (void * ptr , size_t size , size_t max_size ) {
338337 ba_leak_init_once ();
339338 return ba_generic_realloc (Base_alloc_leak , ptr , size , max_size );
340339}
341340
342- static inline void * ba_leak_aligned_alloc (size_t alignment , size_t size ) {
343- ba_leak_init_once ();
344- void * ptr = umf_ba_linear_alloc (Base_alloc_leak , size + alignment );
345- return (void * )ALIGN_UP_SAFE ((uintptr_t )ptr , alignment );
346- }
347-
348341static inline int ba_leak_free (void * ptr ) {
349342 ba_leak_init_once ();
350343 return umf_ba_linear_free (Base_alloc_leak , ptr );
0 commit comments