mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-10-30 22:40:54 -07:00 
			
		
		
		
	Finished first pass reviewing memory.hpp for C lib generation
This commit is contained in:
		| @@ -123,8 +123,8 @@ typedef s8  b8; | ||||
| typedef s16 b16; | ||||
| typedef s32 b32; | ||||
|  | ||||
| using mem_ptr       = void*; | ||||
| using mem_ptr_const = void const*; | ||||
| typedef void*       mem_ptr; | ||||
| typedef void const* mem_ptr_const ; | ||||
|  | ||||
| #if ! GEN_COMPILER_C | ||||
| template<typename Type> uptr to_uptr( Type* ptr ) { return (uptr)ptr; } | ||||
|   | ||||
| @@ -52,9 +52,9 @@ template<class Type> bool         resize(Array<Type>& array, usize num); | ||||
| template<class Type> bool         set_capacity(Array<Type>& array, usize new_capacity); | ||||
| template<class Type> ArrayHeader* get_header(Array<Type>& array); | ||||
|  | ||||
| template<class Type> forceinline Type* begin(Array<Type>& array) { return array;      } | ||||
| template<class Type> forceinline Type* end(Array<Type>& array)   { return array + get_header(array)->Num; } | ||||
| template<class Type> forceinline Type* next(Type* entry)         { return entry + 1; } | ||||
| template<class Type> forceinline Type* begin(Array<Type>& array)             { return array;      } | ||||
| template<class Type> forceinline Type* end(Array<Type>& array)               { return array + get_header(array)->Num; } | ||||
| template<class Type> forceinline Type* next(Array<Type>& array, Type* entry) { return entry + 1; } | ||||
|  | ||||
| struct ArrayHeader { | ||||
| 	AllocatorInfo Allocator; | ||||
| @@ -250,7 +250,7 @@ bool fill(Array<Type>& array, usize begin, usize end, Type value) | ||||
| template<class Type> inline | ||||
| void free(Array<Type>& array) { | ||||
| 	ArrayHeader* header = get_header(array); | ||||
| 	gen::free(header->Allocator, header); | ||||
| 	GEN_NS free(header->Allocator, header); | ||||
| 	Type*& Data = rcast(Type*&, array); | ||||
| 	Data = nullptr; | ||||
| } | ||||
|   | ||||
| @@ -200,7 +200,7 @@ | ||||
| // This is intended to only really be used internally or with the C-library variant | ||||
| // C++ users can just use the for-range directly. | ||||
| #if GEN_COMPILER_C | ||||
| #	define foreach(Type, entry_id, iterable) for ( Type entry_id = begin(iterable); entry_id != end(iterable); entry_id = next(entry_id) ) | ||||
| #	define foreach(Type, entry_id, iterable) for ( Type entry_id = begin(iterable); entry_id != end(iterable); entry_id = next(iterable, entry_id) ) | ||||
| #else | ||||
| #	define foreach(Type, entry_id, iterable) for ( Type entry_id : iterable ) | ||||
| #endif | ||||
|   | ||||
| @@ -80,10 +80,7 @@ enum AllocType : u8 | ||||
| 	EAllocation_RESIZE, | ||||
| }; | ||||
|  | ||||
| using AllocatorProc = void* ( void* allocator_data, AllocType type | ||||
| 	, ssize size, ssize alignment | ||||
| 	, void* old_memory, ssize old_size | ||||
| 	, u64 flags ); | ||||
| typedef void*(AllocatorProc)( void* allocator_data, AllocType type, ssize size, ssize alignment, void* old_memory, ssize old_size, u64 flags ); | ||||
|  | ||||
| struct AllocatorInfo | ||||
| { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user