mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Fix shared msg cache bug
This commit is contained in:
parent
75a4c8d9e5
commit
f6589aa370
4 changed files with 31 additions and 31 deletions
|
@ -229,6 +229,19 @@ SrsSharedPtrMessage::~SrsSharedPtrMessage()
|
|||
}
|
||||
}
|
||||
|
||||
bool SrsSharedPtrMessage::recycle()
|
||||
{
|
||||
// When recycle, unwrap if not the last reference.
|
||||
if (ptr && ptr->shared_count > 0) {
|
||||
ptr->shared_count--;
|
||||
ptr = NULL;
|
||||
payload = NULL;
|
||||
size = 0;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
srs_error_t SrsSharedPtrMessage::create(SrsCommonMessage* msg)
|
||||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
@ -287,21 +300,6 @@ void SrsSharedPtrMessage::wrap(char* payload, int size)
|
|||
this->size = ptr->size;
|
||||
}
|
||||
|
||||
void SrsSharedPtrMessage::unwrap()
|
||||
{
|
||||
if (ptr) {
|
||||
if (ptr->shared_count > 0) {
|
||||
ptr->shared_count--;
|
||||
ptr = NULL;
|
||||
} else {
|
||||
srs_freep(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
payload = NULL;
|
||||
size = 0;
|
||||
}
|
||||
|
||||
int SrsSharedPtrMessage::count()
|
||||
{
|
||||
return ptr? ptr->shared_count : 0;
|
||||
|
@ -365,8 +363,6 @@ SrsSharedPtrMessage* SrsSharedPtrMessage::copy()
|
|||
|
||||
copy->timestamp = timestamp;
|
||||
copy->stream_id = stream_id;
|
||||
copy->payload = ptr->payload;
|
||||
copy->size = ptr->size;
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
@ -382,6 +378,9 @@ SrsSharedPtrMessage* SrsSharedPtrMessage::copy2()
|
|||
copy->ptr = ptr;
|
||||
ptr->shared_count++;
|
||||
|
||||
copy->payload = ptr->payload;
|
||||
copy->size = ptr->size;
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue