RFG_Regions* RFG_Regions_init() { RFG_Regions* ret; /* allocate memory for RFG regions object */ if( !( ret = ( RFG_Regions* )calloc( 1, sizeof( RFG_Regions ) ) ) ) return NULL; /* initialize call stack */ if( !stack_init( &(ret->stack) ) ) { free( ret ); return NULL; } /* initialize RFG filter object */ if( !( ret->filter = RFG_Filter_init() ) ) { free( ret ); return NULL; } /* initialize RFG groups object */ if( !( ret->groups = RFG_Groups_init() ) ) { free( ret ); return NULL; } return ret; }
RFG_Regions* RFG_Regions_init() { RFG_Regions* ret; uint32_t i; /* allocate memory for RFG regions object */ ret = ( RFG_Regions* )malloc( sizeof( RFG_Regions ) ); if( ret == NULL ) return NULL; /* initalize hash table */ for( i = 0; i < HASH_MAX; i++ ) ret->htab[i] = NULL; /* initialize call stack */ ret->stack = NULL; if( !stack_init( &(ret->stack) ) ) { free( ret ); return NULL; } /* initialize RFG filter object */ ret->filter = NULL; ret->filter = RFG_Filter_init(); if( !ret->filter ) { free( ret ); return NULL; } /* initialize RFG groups object */ ret->groups = NULL; ret->groups = RFG_Groups_init(); if( !ret->groups ) { free( ret ); return NULL; } return ret; }