bool_t flush_fonts(void) { font_node_t *fontnode; hash_search_t sptr; list_t delete_list; list_elem_t elem; char *key; bool_t result; delete_list = create_list(); begin_hash_scan(font_table, &sptr); while ( next_hash_entry(sptr, &key, (hash_entry_t*)(&fontnode)) ) { if (fontnode->ref_count == 0) { elem = insert_list_elem(delete_list, NULL, (list_elem_data_t)key); } } end_hash_scan(sptr); elem = get_list_head(delete_list); while (elem != NULL) { key = (char*)get_list_elem_data(elem); result = del_font( key ); check_assertion(result, "Attempt to flush non-existant font"); elem = get_next_list_elem(delete_list, elem); } del_list(delete_list); return True; }
int deleteconsole(void) { if (font != NULL) { del_font(font); font = NULL; } /* if */ if (app != NULL) { del_app(app); app = NULL; } /* if */ if (lines != NULL) { free(lines); lines = NULL; } /* if */ win = NULL; return 1; }