__attribute__((warn_unused_result))
void *_vg_linear_alloc( void *buffer, u32 size, const char *constr_name )
{
- if( size % 8 ){
- vg_error( "alloc(%u) is not 8 byte aligned\n", size );
- vg_print_backtrace();
+ if( size % 8 )
size = vg_align8( size );
- }
- if( ((u64)buffer) % 8 ){
+
+ if( ((u64)buffer) % 8 )
vg_fatal_error( "unaligned buffer (%p)", buffer );
- }
vg_linear_allocator *alloc = vg_linear_header( buffer );
- if( (alloc->cur + size) > alloc->size ){
+ if( (alloc->cur + size) > alloc->size )
+ {
vg_fatal_error( "linear allocator overflow (%u + %u > %u)\n",
alloc->cur, size, alloc->size );
}
{
vg_linear_allocator *alloc = vg_linear_header( buffer );
- if( newsize % 8 ){
- vg_error( "alloc(%u) is not 8 byte aligned\n", newsize );
- vg_print_backtrace();
+ if( newsize % 8 )
newsize = vg_align8( newsize );
- }
if( alloc->last_alloc != data )
vg_fatal_error( "This block has been fixed!" );