void free_macro_table (struct macro_table *table) { /* Free the source file tree. */ free_macro_source_file (table->main_source); /* Free the table of macro definitions. */ splay_tree_delete (table->definitions); }
/* Free a source file, and all the source files it #included. */ static void free_macro_source_file (struct macro_source_file *src) { struct macro_source_file *child, *next_child; /* Free this file's children. */ for (child = src->includes; child; child = next_child) { next_child = child->next_included; free_macro_source_file (child); } macro_bcache_free (src->table, (char *) src->filename); macro_free (src, src->table); }