mirror of
https://github.com/jambonz/freeswitch-modules.git
synced 2025-12-19 06:47:43 +00:00
not clearing mark memory properly (#118)
* not clearing mark memory properly * race condition where mark followed by audio and buffers for mark not completely allocated
This commit is contained in:
@@ -557,7 +557,7 @@ namespace {
|
|||||||
tech_pvt->streamingPreBuffer = nullptr;
|
tech_pvt->streamingPreBuffer = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nullptr == tech_pvt->pVecMarksInInventory) {
|
if (tech_pvt->pVecMarksInInventory) {
|
||||||
delete static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInInventory);
|
delete static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInInventory);
|
||||||
tech_pvt->pVecMarksInInventory = nullptr;
|
tech_pvt->pVecMarksInInventory = nullptr;
|
||||||
delete static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInUse);
|
delete static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInUse);
|
||||||
@@ -979,7 +979,7 @@ extern "C" {
|
|||||||
std::deque<std::string>* pVecInventory = nullptr;
|
std::deque<std::string>* pVecInventory = nullptr;
|
||||||
std::deque<std::string>* pVecInUse = nullptr;
|
std::deque<std::string>* pVecInUse = nullptr;
|
||||||
std::deque<std::string>* pVecCleared = nullptr;
|
std::deque<std::string>* pVecCleared = nullptr;
|
||||||
if (nullptr != tech_pvt->pVecMarksInUse) {
|
if (tech_pvt->pVecMarksInInventory && tech_pvt->pVecMarksInUse && tech_pvt->pVecMarksCleared) {
|
||||||
pVecInventory = static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInInventory);
|
pVecInventory = static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInInventory);
|
||||||
pVecInUse = static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInUse);
|
pVecInUse = static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksInUse);
|
||||||
pVecCleared = static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksCleared);
|
pVecCleared = static_cast<std::deque<std::string>*>(tech_pvt->pVecMarksCleared);
|
||||||
@@ -1032,7 +1032,7 @@ extern "C" {
|
|||||||
|
|
||||||
if (samplesToCopy > 0) {
|
if (samplesToCopy > 0) {
|
||||||
vector_add(fp, data, rframe->samples);
|
vector_add(fp, data, rframe->samples);
|
||||||
} else if (pVecInventory != nullptr && pVecInventory->size()) {
|
} else if (pVecInventory && pVecInventory->size()) {
|
||||||
// no bidirectional audio to dub but still have some mark in inventory, send them now
|
// no bidirectional audio to dub but still have some mark in inventory, send them now
|
||||||
auto name = pVecInventory->front();
|
auto name = pVecInventory->front();
|
||||||
pVecInventory->pop_front();
|
pVecInventory->pop_front();
|
||||||
|
|||||||
Reference in New Issue
Block a user