mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-10-30 22:40:54 -07:00 
			
		
		
		
	interface.untyped.cpp impl compiles in gnerated c library
This commit is contained in:
		| @@ -1189,7 +1189,7 @@ R"(#define <interface_name>( code ) _Generic( (code), \ | ||||
|  | ||||
| 			for ( CodeParam arr_param : fn->Params ) | ||||
| 				if (	fn->Name.starts_with(txt("def_")) | ||||
| 					&&	(		arr_param->ValueType->Name.starts_with(txt("Specifier")) | ||||
| 					&&	(		(arr_param->ValueType->Name.starts_with(txt("Specifier")) && fn->Params->NumEntries > 1) | ||||
| 							||	arr_param->ValueType->Name.starts_with(txt("Code")) ) | ||||
| 				) | ||||
| 				{ | ||||
| @@ -1508,9 +1508,9 @@ R"(#define <interface_name>( code ) _Generic( (code), \ | ||||
| 		header.print( format_code_to_untyped(array_code_typename)); | ||||
| 		header.print( fmt_newline); | ||||
| 		header.print( format_code_to_untyped(src_parser) ); | ||||
| 		// header.print( parsing_interface ); | ||||
| 		header.print( src_parsing_interface ); | ||||
| 		header.print_fmt( "\n#pragma endregion Parsing\n" ); | ||||
| 		// header.print( untyped ); | ||||
| 		header.print( src_untyped ); | ||||
| 		 header.print_fmt( "\n#pragma endregion Interface\n\n"); | ||||
|  | ||||
| 		// header.print_fmt( "#pragma region Builder\n" ); | ||||
|   | ||||
| @@ -29,6 +29,11 @@ CodeBody gen_fixed_arenas() | ||||
| 		{ | ||||
| 			return arena_size_remaining( & fixed_arena->arena, alignment); | ||||
| 		} | ||||
|  | ||||
| 		inline | ||||
| 		void fixed_arena_free_<Name>(FixedArena_<Name>* fixed_arena) { | ||||
| 			arena_free( & fixed_arena->arena); | ||||
| 		} | ||||
| 	); | ||||
|  | ||||
| 	CodeBody arena_struct_1kb   = parse_global_body( token_fmt_impl( 3, "Name", txt("1KB"),   "Size", txt("kilobytes(1)"),   template_struct )); | ||||
| @@ -105,6 +110,22 @@ CodeBody gen_fixed_arenas() | ||||
| 	default           : gen_generic_selection_fail \ | ||||
| ) GEN_RESOLVED_FUNCTION_CALL(expr) | ||||
|  | ||||
| #define fixed_arena_free(expr) _Generic((expr),    \ | ||||
|     FixedArena_1KB*   : fixed_arena_free_1KB,      \ | ||||
|     FixedArena_4KB*   : fixed_arena_free_4KB,      \ | ||||
|     FixedArena_8KB*   : fixed_arena_free_8KB,      \ | ||||
|     FixedArena_16KB*  : fixed_arena_free_16KB,     \ | ||||
|     FixedArena_32KB*  : fixed_arena_free_32KB,     \ | ||||
|     FixedArena_64KB*  : fixed_arena_free_64KB,     \ | ||||
|     FixedArena_128KB* : fixed_arena_free_128KB,    \ | ||||
|     FixedArena_256KB* : fixed_arena_free_256KB,    \ | ||||
|     FixedArena_512KB* : fixed_arena_free_512KB,    \ | ||||
|     FixedArena_1MB*   : fixed_arena_free_1MB,      \ | ||||
|     FixedArena_2MB*   : fixed_arena_free_2MB,      \ | ||||
|     FixedArena_4MB*   : fixed_arena_free_4MB,      \ | ||||
| 	default           : gen_generic_selection_fail \ | ||||
| )	GEN_RESOLVED_FUNCTION_CALL(expr) | ||||
|  | ||||
| #define fixed_arena_size_remaining(expr, alignment) _Generic((expr), \ | ||||
|     FixedArena_1KB*   : fixed_arena_size_remaining_1KB,              \ | ||||
|     FixedArena_4KB*   : fixed_arena_size_remaining_4KB,              \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user