version 1.1.2.2, 2006/06/30 02:52:01
|
version 1.1.2.3, 2006/06/30 19:40:54
|
|
|
| |
if (_destructor) | if (_destructor) |
{ | { |
for (Linkable* p = _front; p; ) |
// Reset _front, _back, and _size so that if this is called back, |
|
// there will be nothing to delete. |
|
|
|
Linkable* front = _front; |
|
Linkable* back = _back; |
|
size_t size= _size; |
|
|
|
_front = 0; |
|
_back = 0; |
|
_size = 0; |
|
|
|
for (Linkable* p = front; p; ) |
{ | { |
PEGASUS_LIST_ASSERT(p->magic == PEGASUS_LINKABLE_MAGIC); | PEGASUS_LIST_ASSERT(p->magic == PEGASUS_LINKABLE_MAGIC); |
Linkable* next = p->next; | Linkable* next = p->next; |
_destructor(p); | _destructor(p); |
p = next; | p = next; |
} | } |
|
|
_front = 0; |
|
_back = 0; |
|
_size = 0; |
|
} | } |
} | } |
| |