mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.1 KiB
95 lines
2.1 KiB
//+-------------------------------------------------------------------
|
|
//
|
|
// File: dd.cxx
|
|
//
|
|
// Contents: Destructors for CListEntry and CListHead
|
|
//
|
|
// Classes: None.
|
|
//
|
|
// Functions: CListEntry::~CListEntry -- destructor for entry in list
|
|
// CListHead::~CListHead -- destructor for entire list
|
|
//
|
|
// History: 02-Jan-92 Ricksa Created
|
|
//
|
|
//--------------------------------------------------------------------
|
|
|
|
#include <ole2int.h>
|
|
|
|
#include "dd.hxx"
|
|
|
|
//+-------------------------------------------------------------------
|
|
//
|
|
// Member: CListEntry::~CListEntry
|
|
//
|
|
// Synopsis: Free list entry
|
|
//
|
|
// Effects: Item is removed from list and the entry is freed.
|
|
//
|
|
// Arguments: None.
|
|
//
|
|
// Requires: A valid list entry.
|
|
//
|
|
// Returns: Nothing.
|
|
//
|
|
// Signals: None.
|
|
//
|
|
// Modifies: Makes object point to itself.
|
|
//
|
|
// Derivation: None.
|
|
//
|
|
// Algorithm: Call delete_self method and then free memory.
|
|
//
|
|
// History: 02-Jan-92 Ricksa Created
|
|
//
|
|
// Notes: This destructor is virtual to allow derived class
|
|
// objects to be deleted by a pointer to CListEntry.
|
|
//
|
|
//--------------------------------------------------------------------
|
|
EXPORTIMP CListEntry::~CListEntry(void)
|
|
{
|
|
delete_self();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//+-------------------------------------------------------------------
|
|
//
|
|
// Member: CListHead::~CListHead
|
|
//
|
|
// Synopsis: Destructor for list head class
|
|
//
|
|
// Effects: All objects pointed to by the list are freed.
|
|
//
|
|
// Arguments: None.
|
|
//
|
|
// Requires: Valid CListHead object
|
|
//
|
|
// Returns: Nothing.
|
|
//
|
|
// Signals: None.
|
|
//
|
|
// Modifies: Calls destructors for all entries in the list.
|
|
//
|
|
// Derivation: None.
|
|
//
|
|
// Algorithm: While there are items in the list, call delete.
|
|
//
|
|
// History: 02-Jan-92 Ricksa Created
|
|
//
|
|
// Notes: This destructor leverages off the fact that
|
|
// the CListEntry destructor is virtual so that
|
|
// the destructor for the derived class object
|
|
// will be called.
|
|
//
|
|
//--------------------------------------------------------------------
|
|
CListHead::~CListHead(void)
|
|
{
|
|
CListEntry *linkp;
|
|
|
|
while ((linkp = first()) != NULL)
|
|
{
|
|
delete linkp;
|
|
}
|
|
}
|