|
|
1.1 ! root 1: /* Copyright (c) 1982 Regents of the University of California */ ! 2: ! 3: static char sccsid[] = "@(#)DFDISPOSE.c 4.3 (Berkeley) 7/7/86"; ! 4: ! 5: /* ! 6: * Close all active files within a dynamic record, ! 7: * then dispose of the record. ! 8: */ ! 9: ! 10: #include "h00vars.h" ! 11: #include "libpc.h" ! 12: ! 13: DFDISPOSE(var, size) ! 14: char **var; /* pointer to pointer being deallocated */ ! 15: long size; /* sizeof(bletch) */ ! 16: { ! 17: register struct iorec *next, *prev; ! 18: struct iorec *start, *end; ! 19: ! 20: start = (struct iorec *)(*var); ! 21: end = (struct iorec *)(*var + size); ! 22: prev = (struct iorec *)(&_fchain); ! 23: next = _fchain.fchain; ! 24: while(next != FILNIL && (next->flev < GLVL || next < start)) { ! 25: prev = next; ! 26: next = next->fchain; ! 27: } ! 28: while(next != FILNIL && start <= next && next < end) ! 29: next = PFCLOSE(next, TRUE); ! 30: prev->fchain = next; ! 31: DISPOSE(var, size); ! 32: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.