int finish_(UNUSED(Module m)) { int i; unrefthingy(lbindk); cleanup_keymaps(); deletehashtable(thingytab); zfree(vichgbuf, vichgbufsz); zfree(kungetbuf, kungetsz); free_isrch_spots(); if (rdstrs) freelinklist(rdstrs, freestr); free(cutbuf.buf); if (kring) { for(i = kringsize; i--; ) free(kring[i].buf); zfree(kring, kringsize * sizeof(struct cutbuffer)); } for(i = 36; i--; ) zfree(vibuf[i].buf, vibuf[i].len); /* editor entry points */ zle_entry_ptr = (ZleEntryPoint)0; zle_load_state = 0; zfree(clwords, clwsize * sizeof(char *)); zle_refresh_finish(); return 0; }
static void compunsetfn(Param pm, int exp) { if (exp) { if (pm->u.data) { if (PM_TYPE(pm->node.flags) == PM_SCALAR) { zsfree(*((char **) pm->u.data)); *((char **) pm->u.data) = ztrdup(""); } else if (PM_TYPE(pm->node.flags) == PM_ARRAY) { freearray(*((char ***) pm->u.data)); *((char ***) pm->u.data) = zshcalloc(sizeof(char *)); } else if (PM_TYPE(pm->node.flags) == PM_HASHED) { deleteparamtable(pm->u.hash); pm->u.hash = NULL; } } } else if (PM_TYPE(pm->node.flags) == PM_HASHED) { Param *p; int i; deletehashtable(pm->u.hash); pm->u.hash = NULL; for (p = compkpms, i = CP_KEYPARAMS; i--; p++) *p = NULL; } if (!exp) { Param *p; int i; for (p = comprpms, i = CP_REALPARAMS; i; p++, i--) if (*p == pm) { *p = NULL; break; } } }
int finish_(UNUSED(Module m)) { deletehashtable(emptytable); return 0; }