static void free_config(struct sway_config *config) { int i; for (i = 0; i < config->symbols->length; ++i) { free_variable(config->symbols->items[i]); } list_free(config->symbols); for (i = 0; i < config->modes->length; ++i) { free_mode(config->modes->items[i]); } list_free(config->modes); free_flat_list(config->cmd_queue); for (i = 0; i < config->workspace_outputs->length; ++i) { free_workspace_output(config->workspace_outputs->items[i]); } list_free(config->workspace_outputs); for (i = 0; i < config->criteria->length; ++i) { free_criteria(config->criteria->items[i]); } list_free(config->criteria); for (i = 0; i < config->output_configs->length; ++i) { free_output_config(config->output_configs->items[i]); } list_free(config->output_configs); free(config); }
void free_config(struct sway_config *config) { int i; for (i = 0; i < config->modes->length; ++i) { free_mode((struct sway_mode *)config->modes->items[i]); } free_flat_list(config->modes); for (i = 0; i < config->workspace_outputs->length; ++i) { struct workspace_output *wso = config->workspace_outputs->items[i]; free(wso->output); free(wso->workspace); } free_flat_list(config->workspace_outputs); free_flat_list(config->cmd_queue); for (i = 0; i < config->symbols->length; ++i) { struct sway_variable *sym = config->symbols->items[i]; free(sym->name); free(sym->value); } free_flat_list(config->symbols); }
void free_config(struct sway_config *config) { if (!config) { return; } int i; for (i = 0; config->symbols && i < config->symbols->length; ++i) { free_variable(config->symbols->items[i]); } list_free(config->symbols); for (i = 0; config->modes && i < config->modes->length; ++i) { free_mode(config->modes->items[i]); } list_free(config->modes); for (i = 0; config->bars && i < config->bars->length; ++i) { free_bar(config->bars->items[i]); } list_free(config->bars); free_flat_list(config->cmd_queue); for (i = 0; config->workspace_outputs && i < config->workspace_outputs->length; ++i) { free_workspace_output(config->workspace_outputs->items[i]); } list_free(config->workspace_outputs); for (i = 0; config->pid_workspaces && i < config->pid_workspaces->length; ++i) { free_pid_workspace(config->pid_workspaces->items[i]); } list_free(config->pid_workspaces); for (i = 0; config->criteria && i < config->criteria->length; ++i) { free_criteria(config->criteria->items[i]); } list_free(config->criteria); for (i = 0; config->input_configs && i < config->input_configs->length; ++i) { free_input_config(config->input_configs->items[i]); } list_free(config->input_configs); for (i = 0; config->output_configs && i < config->output_configs->length; ++i) { free_output_config(config->output_configs->items[i]); } list_free(config->output_configs); for (i = 0; config->command_policies && i < config->command_policies->length; ++i) { free_command_policy(config->command_policies->items[i]); } list_free(config->command_policies); for (i = 0; config->feature_policies && 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); free(config->floating_scroll_up_cmd); free(config->floating_scroll_down_cmd); free(config->floating_scroll_left_cmd); free(config->floating_scroll_right_cmd); free(config); }