void action_free ( ACTION * action ) { if ( --action->refs == 0 ) { freetargets( action->targets ); freetargets( action->sources ); BJAM_FREE( action ); } }
static void freetarget( void *xt, void *data ) { TARGET* t = (TARGET *)xt; if ( t->settings ) freesettings( t->settings ); if ( t->deps[0] ) freetargets( t->deps[0] ); if ( t->deps[1] ) freetargets( t->deps[1] ); if ( t->actions ) freeactions( t->actions ); }
static void freetarget( void * xt, void * data ) { TARGET * t = (TARGET *)xt; if ( t->name ) object_free ( t->name ); if ( t->boundname ) object_free ( t->boundname ); if ( t->settings ) freesettings( t->settings ); if ( t->depends ) freetargets ( t->depends ); if ( t->dependants ) freetargets ( t->dependants ); if ( t->parents ) freetargets ( t->parents ); if ( t->actions ) freeactions ( t->actions ); if ( t->includes ) { freetarget( t->includes, (void *)0 ); BJAM_FREE( t->includes ); } }
void cmd_free( CMD * cmd ) { cmdlist_free( cmd->next ); lol_free( &cmd->args ); list_free( cmd->shell ); string_free( cmd->buf ); freetargets( cmd->unlock ); BJAM_FREE( (void *)cmd ); }
static void freetarget( void *xt, void *data ) { TARGET* t = (TARGET *)xt; if ( t->settings ) freesettings( t->settings ); if ( t->depends ) freetargets( t->depends ); if ( t->includes ) freetarget( t->includes, (void*)0); if ( t->actions ) freeactions( t->actions ); }