ref: 3aa27c3da9cf49c6f8082f09a295b7cf241c9a65
dir: /src/libmach/objfree.c/
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <scc/mach.h> #include "libmach.h" static void delsyms(Obj *obj) { Symbol *sym, *next; for (sym = obj->head; sym; sym = next) { next = sym->next; free(sym->name); free(sym); } obj->head = NULL; memset(obj->htab, 0, sizeof(obj->htab)); } static void delsecs(Obj *obj) { int i; for (i = 0; i < obj->nsecs; i++) free(obj->sections[i].name); free(obj->sections); obj->sections = NULL; } void objfree(Obj *obj, int what) { if (what & FREESYM) delsyms(obj); if (what & FREESECT) delsecs(obj); }