Code:
void FreeNode( void *tmp, int specifier )
{
DFNCOL *colnode = tmp;
DFNOUTPUT *outnode = tmp;
if( specifier == somethingthatmeansDFNCOL && colnode->ptr )
FreeNode( colnode->ptr, specifier );
if( specifier == somethingthatmeansDFNOUTPUT &&outnode->ptr )
FreeNode( outnode->ptr, specifier );
free( tmp );
}
Or maybe we like something like this...
Code:
void FreeNode( void *tmp, int specifier )
{
if( tmp )
{
DFNCOL *colnode = tmp;
DFNOUTPUT *outnode = tmp;
FreeNode( specifier == somethingthatmeansDFNCOL && colnode->ptr
? colnode->ptr
: outnode->ptr
, specifier );
free( tmp );
}
}
That should do it.
[edit] Curses, foiled again! [/edit]
Quzah.