Ejemplo n.º 1
0
/*****************************************************************************
 * 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 */
Ejemplo n.º 2
0
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
}