void popredir(void) { struct redirtab *rp = redirlist; INTOFF; free_rl(rp, 1); redirlist = rp->next; ckfree(rp); INTON; }
void clearredir(int vforked) { struct redirtab *rp; struct renamelist *rl; for (rp = redirlist ; rp ; rp = rp->next) { if (!vforked) free_rl(rp, 0); else for (rl = rp->renamed; rl; rl = rl->next) if (rl->into >= 0) close(rl->into); } }
static int p_rl_free(void) { YAP_Term t1=YAP_Deref(YAP_ARG1); IDTYPE id; RL_Tree* tree; // Check args if (YAP_IsVarTerm(t1)) return(FALSE); id=YAP_IntOfTerm(t1); tree=ID2PTR(id); #ifdef STATS FREE_MEM_USAGE(tree); #endif free_rl(tree); return (TRUE); }