/***************************************************************************** * Function: void _DtHelpDestroyTopicData ( * _DtCvSegment *seg_list) * * Parameters: * seg_list Specifies the SDL segment list. * * Returns: Nothing * * Purpose: Free all memory associated with an SDL list. *****************************************************************************/ void _DtHelpDestroyTopicData ( _DtCvTopicInfo *topic, void (*destroy_region)(), _DtCvPointer client_data) { if (NULL != topic) { /* * free the segment list */ _DtHelpFreeSegments(topic->seg_list, _DtCvFALSE, destroy_region, client_data); /* * free the id string */ if (NULL != topic->id_str) free(topic->id_str); /* * free the database */ _DtLinkDbDestroy(topic->link_data); /* * free the structure */ free(topic); } } /* End _DtHelpDestroyTopicData */
NodeViewInfo::~NodeViewInfo() { _DtLinkDbDestroy(f_topic->link_data); // kill the link database cleanup(f_topic->seg_list); // kill the segments and their items f_topic->seg_list = 0 ; delete f_topic ; // sayonara if (f_pixmap_list != NULL) { // explicitly cleanup graphics in f_pixmap_list List_Iterator<UAS_Pointer<Graphic> > gli (f_pixmap_list) ; while (gli) { #ifdef DEBUG printf( "delete UAS_Pointer<Graphic> gli.item() = %p\n", gli.item() ); #endif f_pixmap_list.remove(gli) ; } } #ifdef DEBUG printf( "kill NodeViewInfo %p\n\n", this ); #endif }