Reset child iterators on deletion.

This fixes an illegal access in ~TeeSongIterator.

svn-id: r39272
This commit is contained in:
Willem Jan Palenstijn 2009-03-09 19:44:10 +00:00
parent f525575495
commit d2514d20b9

View file

@ -1575,11 +1575,13 @@ SongIterator *TeeSongIterator::handleMessage(SongIteratorMessage msg) {
return NULL; return NULL;
} else if (!(_status & TEE_LEFT_ACTIVE)) { } else if (!(_status & TEE_LEFT_ACTIVE)) {
delete _children[TEE_LEFT].it; delete _children[TEE_LEFT].it;
_children[TEE_LEFT].it = 0;
old_it = _children[TEE_RIGHT].it; old_it = _children[TEE_RIGHT].it;
delete this; delete this;
return old_it; return old_it;
} else if (!(_status & TEE_RIGHT_ACTIVE)) { } else if (!(_status & TEE_RIGHT_ACTIVE)) {
delete _children[TEE_RIGHT].it; delete _children[TEE_RIGHT].it;
_children[TEE_RIGHT].it = 0;
old_it = _children[TEE_LEFT].it; old_it = _children[TEE_LEFT].it;
delete this; delete this;
return old_it; return old_it;