static void SemOS2FreeDiagCtrlList( FullDiagCtrlListOS2 *list ) /*************************************************************/ { FullDialogBoxControlOS2 *ctrl; FullDialogBoxControlOS2 *oldctrl; ctrl = list->head; while( ctrl != NULL ) { /* free the contents of pointers within the structure */ if( ctrl->ctrl.ClassID != NULL ) { RcMemFree( ctrl->ctrl.ClassID ); } if( ctrl->ctrl.Text != NULL ) { RcMemFree( ctrl->ctrl.Text ); } oldctrl = ctrl; if( ctrl->children != NULL ) SemOS2FreeDiagCtrlList( ctrl->children ); SemFreeDataElemList( ctrl->dataListHead ); SemOS2FreePresParamList( ctrl->presParams ); ctrl = ctrl->next; RcMemFree( oldctrl ); } RcMemFree( list ); } /* SemOS2FreeDiagCtrlList */
static void SemOS2FreeHelpSubTable( FullHelpSubTableOS2 *helptable ) /******************************************************************/ { FullHelpSubEntryOS2 *currentry; FullHelpSubEntryOS2 *oldentry; if( helptable != NULL ) { currentry = helptable->head; while( currentry != NULL ) { SemFreeDataElemList( currentry->dataListHead ); oldentry = currentry; currentry = currentry->next; RCFREE( oldentry ); } RCFREE( helptable ); } }
static void SemOS2FreePresParamList( PresParamListOS2 *list ) /***********************************************************/ { PresParamsOS2 *presparam; PresParamsOS2 *currparam; if( list == NULL ) return; presparam = list->head; while( presparam != NULL ) { RcMemFree( presparam->Name ); SemFreeDataElemList( presparam->dataList ); currparam = presparam; presparam = presparam->next; RcMemFree( currparam ); } RcMemFree( list ); }