Commit cb4ab215 by xia-chu

修复rtsp组播遍历迭代器导致崩溃的bug

parent f3f4b493
...@@ -82,10 +82,12 @@ void UDPServer::onRecv(int interleaved, const Buffer::Ptr &buf, struct sockaddr* ...@@ -82,10 +82,12 @@ void UDPServer::onRecv(int interleaved, const Buffer::Ptr &buf, struct sockaddr*
return; return;
} }
auto &ref = it0->second; auto &ref = it0->second;
for (auto it1 = ref.begin(); it1 != ref.end(); ++it1) { for (auto it1 = ref.begin(); it1 != ref.end();) {
auto &func = it1->second; auto &func = it1->second;
if (!func(interleaved, buf, peer_addr)) { if (!func(interleaved, buf, peer_addr)) {
it1 = ref.erase(it1); it1 = ref.erase(it1);
} else {
++it1;
} }
} }
if (ref.size() == 0) { if (ref.size() == 0) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论