mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
for memory leak detect, move the payload create to message.
This commit is contained in:
parent
863dddde09
commit
f347099fd1
3 changed files with 18 additions and 7 deletions
|
@ -166,6 +166,18 @@ SrsCommonMessage::~SrsCommonMessage()
|
||||||
srs_freep(payload);
|
srs_freep(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SrsCommonMessage::create_payload(int size)
|
||||||
|
{
|
||||||
|
srs_freep(payload);
|
||||||
|
|
||||||
|
payload = new char[size];
|
||||||
|
srs_verbose("create payload for RTMP message. size=%d", size);
|
||||||
|
|
||||||
|
#ifdef SRS_MEM_WATCH
|
||||||
|
srs_memory_watch(payload, "RTMP.msg.payload", size);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
SrsSharedPtrMessage::SrsSharedPtrPayload::SrsSharedPtrPayload()
|
SrsSharedPtrMessage::SrsSharedPtrPayload::SrsSharedPtrPayload()
|
||||||
{
|
{
|
||||||
payload = NULL;
|
payload = NULL;
|
||||||
|
|
|
@ -283,8 +283,12 @@ public:
|
||||||
char* payload;
|
char* payload;
|
||||||
public:
|
public:
|
||||||
SrsCommonMessage();
|
SrsCommonMessage();
|
||||||
public:
|
|
||||||
virtual ~SrsCommonMessage();
|
virtual ~SrsCommonMessage();
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* alloc the payload to specified size of bytes.
|
||||||
|
*/
|
||||||
|
virtual void create_payload(int size);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -30,7 +30,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#include <srs_kernel_utility.hpp>
|
#include <srs_kernel_utility.hpp>
|
||||||
#include <srs_protocol_buffer.hpp>
|
#include <srs_protocol_buffer.hpp>
|
||||||
#include <srs_rtmp_utility.hpp>
|
#include <srs_rtmp_utility.hpp>
|
||||||
#include <srs_core_mem_watch.hpp>
|
|
||||||
|
|
||||||
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
|
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
|
@ -1411,11 +1410,7 @@ int SrsProtocol::read_message_payload(SrsChunkStream* chunk, SrsCommonMessage**
|
||||||
|
|
||||||
// create msg payload if not initialized
|
// create msg payload if not initialized
|
||||||
if (!chunk->msg->payload) {
|
if (!chunk->msg->payload) {
|
||||||
chunk->msg->payload = new char[chunk->header.payload_length];
|
chunk->msg->create_payload(chunk->header.payload_length);
|
||||||
srs_verbose("create payload for RTMP message. size=%d", chunk->header.payload_length);
|
|
||||||
#ifdef SRS_MEM_WATCH
|
|
||||||
srs_memory_watch(chunk->msg->payload, "msg.payload", chunk->header.payload_length);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// read payload to buffer
|
// read payload to buffer
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue