Iterator was invalid while removing entries from codec db maps.
Review URL: http://webrtc-codereview.appspot.com/373003 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1534 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
9e332ab95b
commit
218db3de20
@ -484,19 +484,23 @@ VCMCodecDataBase::ResetReceiver()
|
|||||||
ReleaseDecoder(_ptrDecoder);
|
ReleaseDecoder(_ptrDecoder);
|
||||||
_ptrDecoder = NULL;
|
_ptrDecoder = NULL;
|
||||||
memset(&_receiveCodec, 0, sizeof(VideoCodec));
|
memset(&_receiveCodec, 0, sizeof(VideoCodec));
|
||||||
for (DecoderMap::iterator it = _decMap.begin(); it != _decMap.end(); ++it) {
|
DecoderMap::iterator it = _decMap.begin();
|
||||||
|
while (it != _decMap.end()) {
|
||||||
if ((*it).second->_settings != NULL)
|
if ((*it).second->_settings != NULL)
|
||||||
{
|
{
|
||||||
delete (*it).second->_settings;
|
delete (*it).second->_settings;
|
||||||
}
|
}
|
||||||
delete (*it).second;
|
delete (*it).second;
|
||||||
_decMap.erase(it);
|
_decMap.erase(it);
|
||||||
|
it = _decMap.begin();
|
||||||
}
|
}
|
||||||
for (ExternalDecoderMap::iterator it = _decExternalMap.begin();
|
ExternalDecoderMap::iterator exterit = _decExternalMap.begin();
|
||||||
it != _decExternalMap.end(); ++it) {
|
while (exterit != _decExternalMap.begin()) {
|
||||||
delete (*it).second;
|
delete (*exterit).second;
|
||||||
_decExternalMap.erase(it);
|
_decExternalMap.erase(exterit);
|
||||||
|
exterit = _decExternalMap.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
_currentDecIsExternal = false;
|
_currentDecIsExternal = false;
|
||||||
return VCM_OK;
|
return VCM_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user