19 lines
		
	
	
		
			563 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			563 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   assert(allocator != NULL && array != NULL);
 | |
| 
 | |
|   {ArrayType} *output = array;
 | |
| 
 | |
|   if (array->count >= array->capacity) {{
 | |
|     u64 new_capacity = wapp_misc_utils_u64_round_up_pow2(array->capacity * 2);
 | |
|     output           = ({ArrayType} *)_array_alloc_capacity(allocator, new_capacity, array->item_size);
 | |
|     if (!output) {{
 | |
|       output = array;
 | |
|       goto RETURN_{Tupper}_ARRAY_APPEND_ALLOC;
 | |
|     }}
 | |
|     wapp_{Tlower}_array_copy_capped(array, output);
 | |
|   }}
 | |
| 
 | |
|   wapp_{Tlower}_array_append_capped(output, item);
 | |
| 
 | |
| RETURN_{Tupper}_ARRAY_APPEND_ALLOC:
 | |
|   return output;
 |