xref: /original-bsd/usr.bin/pascal/libpc/DISPOSE.c (revision 6c57d260)
1 /* Copyright (c) 1979 Regents of the University of California */
2 
3 static char sccsid[] = "@(#)DISPOSE.c 1.2 03/07/81";
4 
5 #include	"h00vars.h"
6 #include	"h01errs.h"
7 
8 DISPOSE(var, siz)
9 	register char	**var;	/* pointer to pointer being deallocated */
10 	long		siz;	/* sizeof(bletch) */
11 {
12 	register int size = siz;
13 
14 	if (*var == 0 || *var + size > _maxptr || *var < _minptr) {
15 		ERROR(ENILPTR,0);
16 		return;
17 	}
18 	free(*var);
19 	if (*var == _minptr)
20 		_minptr += size;
21 	if (*var + size == _maxptr)
22 		_maxptr -= size;
23 	*var = (char *)(0);
24 }
25