|  |  |  | @ -167,6 +167,16 @@ void free_pid_workspace(struct pid_workspace *pw) { | 
			
		
	
		
			
				
					|  |  |  |  | 	free(pw); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void free_command_policy(struct command_policy *policy) { | 
			
		
	
		
			
				
					|  |  |  |  | 	free(policy->command); | 
			
		
	
		
			
				
					|  |  |  |  | 	free(policy); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void free_feature_policy(struct feature_policy *policy) { | 
			
		
	
		
			
				
					|  |  |  |  | 	free(policy->program); | 
			
		
	
		
			
				
					|  |  |  |  | 	free(policy); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void free_config(struct sway_config *config) { | 
			
		
	
		
			
				
					|  |  |  |  | 	int i; | 
			
		
	
		
			
				
					|  |  |  |  | 	for (i = 0; i < config->symbols->length; ++i) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -211,6 +221,16 @@ void free_config(struct sway_config *config) { | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	list_free(config->output_configs); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	for (i = 0; i < config->command_policies->length; ++i) { | 
			
		
	
		
			
				
					|  |  |  |  | 		free_command_policy(config->command_policies->items[i]); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	list_free(config->command_policies); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	for (i = 0; i < config->feature_policies->length; ++i) { | 
			
		
	
		
			
				
					|  |  |  |  | 		free_feature_policy(config->feature_policies->items[i]); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	list_free(config->feature_policies); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	list_free(config->active_bar_modifiers); | 
			
		
	
		
			
				
					|  |  |  |  | 	free_flat_list(config->config_chain); | 
			
		
	
		
			
				
					|  |  |  |  | 	free(config->font); | 
			
		
	
	
		
			
				
					|  |  |  | @ -321,6 +341,10 @@ static void config_defaults(struct sway_config *config) { | 
			
		
	
		
			
				
					|  |  |  |  | 	config->border_colors.placeholder.child_border = 0x0C0C0CFF; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	config->border_colors.background = 0xFFFFFFFF; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// Security
 | 
			
		
	
		
			
				
					|  |  |  |  | 	config->command_policies = create_list(); | 
			
		
	
		
			
				
					|  |  |  |  | 	config->feature_policies = create_list(); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static int compare_modifiers(const void *left, const void *right) { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |