Metropoli BBS
VIEWER: dervfree.c MODE: TEXT (ASCII)
/* Copyright (C) 1993 by Thomas Glen Smith.  All Rights Reserved. */
/* dervfree APL2 V1.0.0 ************************************************
* Called by execfree and slasherr.                                     *
* Called to free structure for derived function.                       *
***********************************************************************/
#define INCLUDES APLMEM+APLDERIV
#include "includes.h"
void dervfree(dp)
Aplderiv dp;
{
	Endoper; Dervfree; Temp;

     if (dp == NULL || (dp->deriv_flags & DERPERM))
          return; /* nothing to free */
     if (dp->deriv_left.cb)
          endoper(temp(dp->deriv_left.cb));
     if (dp->deriv_rite.cb)
          endoper(temp(dp->deriv_rite.cb));
     if (dp->deriv_left.funcode == DERIVED_FUNCTION) {
		if (((Aplderiv)(dp->deriv_left.fun))->deriv_flags & DERPERM)
			((Aplderiv)(dp->deriv_left.fun))->deriv_flags -= DERPERM;
     	dervfree(dp->deriv_left.fun);
     }
     if (dp->deriv_axis_cb)
     	endoper(temp(dp->deriv_axis_cb));
     free(dp);
}
[ RETURN TO DIRECTORY ]