/*- * Copyright (c) 1979 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that: (1) source distributions retain this entire copyright * notice and comment, and (2) distributions including binaries display * the following acknowledgement: ``This product includes software * developed by the University of California, Berkeley and its contributors'' * in the documentation or other materials provided with the distribution * and in all advertising materials mentioning features or use of this * software. Neither the name of the University nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef lint static char sccsid[] = "@(#)DISPOSE.c 1.4 (Berkeley) 4/9/90"; #endif /* not lint */ #include "h00vars.h" DISPOSE(var, siz) register char **var; /* pointer to pointer being deallocated */ long siz; /* sizeof(bletch) */ { register int size = siz; if (*var == 0 || *var + size > _maxptr || *var < _minptr) { ERROR("Pointer value out of legal range\n", 0); return; } free(*var); if (*var == _minptr) _minptr += size; if (*var + size == _maxptr) _maxptr -= size; *var = (char *)(0); }