C++20 Port #5
| @ -16,10 +16,11 @@ extern "C" int main(int argc, char const * const * argv) { | ||||
| 		bool is_config_loaded{false}; | ||||
| 
 | ||||
| 		system.res_fs().read_file(config_path, [&](coral::readable const & file) { | ||||
| 			kym::vm vm{&system.thread_safe_allocator(), | ||||
| 				[&system](coral::slice<char const> const & error_message) { | ||||
| 					system.log(app::log_level::error, error_message); | ||||
| 				}}; | ||||
| 			coral::allocator * const allocator{&system.thread_safe_allocator()}; | ||||
| 
 | ||||
| 			kym::vm vm{allocator, [&system](coral::slice<char const> const & error_message) { | ||||
| 				system.log(app::log_level::error, error_message); | ||||
| 			}}; | ||||
| 
 | ||||
| 			if (!vm.init({.datastack_size = 64, .callstack_size = 64})) { | ||||
| 				system.log(app::log_level::error, "failed to allocate memory for config vm"); | ||||
| @ -27,7 +28,7 @@ extern "C" int main(int argc, char const * const * argv) { | ||||
| 				return; | ||||
| 			} | ||||
| 
 | ||||
| 			coral::stack<coral::u8> script_source{&system.thread_safe_allocator()}; | ||||
| 			coral::stack<coral::u8> script_source{allocator}; | ||||
| 			coral::u8 stream_buffer[1024]{0}; | ||||
| 
 | ||||
| 			if (!coral::stream(coral::sequence_writer{&script_source}, file, stream_buffer).is_ok()) | ||||
| @ -51,7 +52,7 @@ extern "C" int main(int argc, char const * const * argv) { | ||||
| 					vm.with_object(config.get_field("title"), [&](kym::bound_object & title) { | ||||
| 						coral::stack<coral::u8, 128> title_buffer{&system.thread_safe_allocator()}; | ||||
| 
 | ||||
| 						if (!title.stringify(coral::sequence_writer(&title_buffer)).is_ok()) { | ||||
| 						if (!title.stringify(coral::sequence_writer{&title_buffer}).is_ok()) { | ||||
| 							system.log(app::log_level::error, | ||||
| 								"failed to decode `title` property of config"); | ||||
| 
 | ||||
| @ -64,7 +65,21 @@ extern "C" int main(int argc, char const * const * argv) { | ||||
| 			}); | ||||
| 		}); | ||||
| 
 | ||||
| 		if (!is_config_loaded) return coral::u8_max; | ||||
| 		if (!is_config_loaded) { | ||||
| 			coral::stack<coral::u8> error_message{&system.thread_safe_allocator()}; | ||||
| 
 | ||||
| 			{ | ||||
| 				coral::sequence_writer error_writer{&error_message}; | ||||
| 
 | ||||
| 				if (!error_writer(coral::slice{"failed to load "}.as_bytes()).is_ok()) | ||||
| 					return coral::u8_max; | ||||
| 
 | ||||
| 				if (!error_writer(config_path.as_slice().as_bytes()).is_ok()) | ||||
| 					return coral::u8_max; | ||||
| 			} | ||||
| 
 | ||||
| 			return coral::u8_max; | ||||
| 		} | ||||
| 
 | ||||
| 		// app::canvas canvas_2d();
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user