rem: XFREE(p->v_name);
add: xfree(p->v_name);
context: unsetv1(struct varent *p){	struct varent *c, *pp;	int f;#ifdef TRACE	tprintf("TRACE- unsetv1()\n");#endif	/*	 * Free associated memory first to avoid complications.	 */	blkfree(p->vec);	XFREE(p->v_name);	/*	 * If p is missing one child, then we can move the other	 * into where p is.  Otherwise, we find the predecessor	 * of p, which is guaranteed to have no right child, copy	 * it into p, and move it's left child into it.	 */	if (p->v_right == 0)		c = p->v_left;	else if (p->v_left == 0)		c = p->v_right;	else {		for (c = p->v_left; c->v_right; c = c->v_right)			;		p->v_name = c->v_name;		p->vec = c->vec;		p = c;		c = p->v_left;	}	/*	 * Move c into where p is.	 */	pp = p->v_parent;	f = pp->v_right == p;	if (pp->v_link[f] = c)		c->v_parent = pp;	/*	 * Free the deleted node, and rebalance.	 */	XFREE( (tchar *)p);	balance(pp, f, 1);}