1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

for #515, use srs_freepa to free the array.

This commit is contained in:
winlin 2015-11-02 11:02:27 +08:00
parent ef00005ab4
commit 2af7749771
16 changed files with 69 additions and 64 deletions

View file

@ -205,7 +205,7 @@ int SrsDynamicHttpConn::do_proxy(ISrsHttpResponseReader* rr, SrsFlvDecoder* dec)
char* data = new char[size]; char* data = new char[size];
if ((ret = dec->read_tag_data(data, size)) != ERROR_SUCCESS) { if ((ret = dec->read_tag_data(data, size)) != ERROR_SUCCESS) {
srs_freep(data); srs_freepa(data);
if (!srs_is_client_gracefully_close(ret)) { if (!srs_is_client_gracefully_close(ret)) {
srs_error("flv: proxy tag data failed. ret=%d", ret); srs_error("flv: proxy tag data failed. ret=%d", ret);
} }

View file

@ -433,7 +433,7 @@ int SrsConfDirective::read_token(SrsConfigBuffer* buffer, vector<string>& args,
if (!word_str.empty()) { if (!word_str.empty()) {
args.push_back(word_str); args.push_back(word_str);
} }
srs_freep(aword); srs_freepa(aword);
if (ch == ';') { if (ch == ';') {
return ERROR_SYSTEM_CONFIG_DIRECTIVE; return ERROR_SYSTEM_CONFIG_DIRECTIVE;
@ -4488,7 +4488,7 @@ namespace _srs_internal
SrsConfigBuffer::~SrsConfigBuffer() SrsConfigBuffer::~SrsConfigBuffer()
{ {
srs_freep(start); srs_freepa(start);
} }
int SrsConfigBuffer::fullfill(const char* filename) int SrsConfigBuffer::fullfill(const char* filename)
@ -4507,7 +4507,7 @@ namespace _srs_internal
int filesize = (int)reader.filesize(); int filesize = (int)reader.filesize();
// create buffer // create buffer
srs_freep(start); srs_freepa(start);
pos = last = start = new char[filesize]; pos = last = start = new char[filesize];
end = start + filesize; end = start + filesize;

View file

@ -76,7 +76,7 @@ SrsHttpResponseWriter::SrsHttpResponseWriter(SrsStSocket* io)
SrsHttpResponseWriter::~SrsHttpResponseWriter() SrsHttpResponseWriter::~SrsHttpResponseWriter()
{ {
srs_freep(hdr); srs_freep(hdr);
srs_freep(iovss_cache); srs_freepa(iovss_cache);
} }
int SrsHttpResponseWriter::final_request() int SrsHttpResponseWriter::final_request()
@ -188,7 +188,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite)
int nb_iovss = 3 + iovcnt; int nb_iovss = 3 + iovcnt;
iovec* iovss = iovss_cache; iovec* iovss = iovss_cache;
if (nb_iovss_cache < nb_iovss) { if (nb_iovss_cache < nb_iovss) {
srs_freep(iovss_cache); srs_freepa(iovss_cache);
nb_iovss_cache = nb_iovss; nb_iovss_cache = nb_iovss;
iovss = iovss_cache = new iovec[nb_iovss]; iovss = iovss_cache = new iovec[nb_iovss];
} }
@ -506,7 +506,7 @@ SrsHttpMessage::~SrsHttpMessage()
{ {
srs_freep(_body); srs_freep(_body);
srs_freep(_uri); srs_freep(_uri);
srs_freep(_http_ts_send_buffer); srs_freepa(_http_ts_send_buffer);
} }
int SrsHttpMessage::update(string url, http_parser* header, SrsFastBuffer* body, vector<SrsHttpHeaderField>& headers) int SrsHttpMessage::update(string url, http_parser* header, SrsFastBuffer* body, vector<SrsHttpHeaderField>& headers)

View file

@ -94,7 +94,7 @@ SrsUdpListener::~SrsUdpListener()
// close it manually. // close it manually.
close(_fd); close(_fd);
srs_freep(buf); srs_freepa(buf);
} }
int SrsUdpListener::fd() int SrsUdpListener::fd()

View file

@ -91,7 +91,7 @@ SrsFastLog::SrsFastLog()
SrsFastLog::~SrsFastLog() SrsFastLog::~SrsFastLog()
{ {
srs_freep(log_data); srs_freepa(log_data);
if (fd > 0) { if (fd > 0) {
::close(fd); ::close(fd);

View file

@ -161,7 +161,7 @@ SrsFastVector::SrsFastVector()
SrsFastVector::~SrsFastVector() SrsFastVector::~SrsFastVector()
{ {
free(); free();
srs_freep(msgs); srs_freepa(msgs);
} }
int SrsFastVector::size() int SrsFastVector::size()
@ -220,7 +220,7 @@ void SrsFastVector::push_back(SrsSharedPtrMessage* msg)
srs_warn("fast vector incrase %d=>%d", nb_msgs, size); srs_warn("fast vector incrase %d=>%d", nb_msgs, size);
// use new array. // use new array.
srs_freep(msgs); srs_freepa(msgs);
msgs = buf; msgs = buf;
nb_msgs = size; nb_msgs = size;
} }

View file

@ -103,9 +103,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
p = NULL; \ p = NULL; \
} \ } \
(void)0 (void)0
// sometimes, the freepa is useless, // please use the freepa(T[]) to free an array,
// it's recomments to free each elem explicit. // or the behavior is undefined.
// so we remove the srs_freepa utility. #define srs_freepa(pa) \
if (pa) { \
delete[] pa; \
pa = NULL; \
} \
(void)0
/** /**
* disable copy constructor of class, * disable copy constructor of class,

View file

@ -419,12 +419,12 @@ SrsAvcAacCodec::SrsAvcAacCodec()
SrsAvcAacCodec::~SrsAvcAacCodec() SrsAvcAacCodec::~SrsAvcAacCodec()
{ {
srs_freep(avc_extra_data); srs_freepa(avc_extra_data);
srs_freep(aac_extra_data); srs_freepa(aac_extra_data);
srs_freep(stream); srs_freep(stream);
srs_freep(sequenceParameterSetNALUnit); srs_freepa(sequenceParameterSetNALUnit);
srs_freep(pictureParameterSetNALUnit); srs_freepa(pictureParameterSetNALUnit);
} }
bool SrsAvcAacCodec::is_avc_codec_ok() bool SrsAvcAacCodec::is_avc_codec_ok()
@ -500,7 +500,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample
// 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33. // 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33.
aac_extra_size = stream->size() - stream->pos(); aac_extra_size = stream->size() - stream->pos();
if (aac_extra_size > 0) { if (aac_extra_size > 0) {
srs_freep(aac_extra_data); srs_freepa(aac_extra_data);
aac_extra_data = new char[aac_extra_size]; aac_extra_data = new char[aac_extra_size];
memcpy(aac_extra_data, stream->data() + stream->pos(), aac_extra_size); memcpy(aac_extra_data, stream->data() + stream->pos(), aac_extra_size);
@ -764,7 +764,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream)
// 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16 // 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16
avc_extra_size = stream->size() - stream->pos(); avc_extra_size = stream->size() - stream->pos();
if (avc_extra_size > 0) { if (avc_extra_size > 0) {
srs_freep(avc_extra_data); srs_freepa(avc_extra_data);
avc_extra_data = new char[avc_extra_size]; avc_extra_data = new char[avc_extra_size];
memcpy(avc_extra_data, stream->data() + stream->pos(), avc_extra_size); memcpy(avc_extra_data, stream->data() + stream->pos(), avc_extra_size);
} }
@ -825,7 +825,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream)
return ret; return ret;
} }
if (sequenceParameterSetLength > 0) { if (sequenceParameterSetLength > 0) {
srs_freep(sequenceParameterSetNALUnit); srs_freepa(sequenceParameterSetNALUnit);
sequenceParameterSetNALUnit = new char[sequenceParameterSetLength]; sequenceParameterSetNALUnit = new char[sequenceParameterSetLength];
stream->read_bytes(sequenceParameterSetNALUnit, sequenceParameterSetLength); stream->read_bytes(sequenceParameterSetNALUnit, sequenceParameterSetLength);
} }
@ -854,7 +854,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream)
return ret; return ret;
} }
if (pictureParameterSetLength > 0) { if (pictureParameterSetLength > 0) {
srs_freep(pictureParameterSetNALUnit); srs_freepa(pictureParameterSetNALUnit);
pictureParameterSetNALUnit = new char[pictureParameterSetLength]; pictureParameterSetNALUnit = new char[pictureParameterSetLength];
stream->read_bytes(pictureParameterSetNALUnit, pictureParameterSetLength); stream->read_bytes(pictureParameterSetNALUnit, pictureParameterSetLength);
} }

View file

@ -163,12 +163,12 @@ SrsCommonMessage::~SrsCommonMessage()
#ifdef SRS_AUTO_MEM_WATCH #ifdef SRS_AUTO_MEM_WATCH
srs_memory_unwatch(payload); srs_memory_unwatch(payload);
#endif #endif
srs_freep(payload); srs_freepa(payload);
} }
void SrsCommonMessage::create_payload(int size) void SrsCommonMessage::create_payload(int size)
{ {
srs_freep(payload); srs_freepa(payload);
payload = new char[size]; payload = new char[size];
srs_verbose("create payload for RTMP message. size=%d", size); srs_verbose("create payload for RTMP message. size=%d", size);
@ -190,7 +190,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
#ifdef SRS_AUTO_MEM_WATCH #ifdef SRS_AUTO_MEM_WATCH
srs_memory_unwatch(payload); srs_memory_unwatch(payload);
#endif #endif
srs_freep(payload); srs_freepa(payload);
} }
SrsSharedPtrMessage::SrsSharedPtrMessage() SrsSharedPtrMessage::SrsSharedPtrMessage()
@ -350,9 +350,9 @@ SrsFlvEncoder::~SrsFlvEncoder()
srs_freep(tag_stream); srs_freep(tag_stream);
#ifdef SRS_PERF_FAST_FLV_ENCODER #ifdef SRS_PERF_FAST_FLV_ENCODER
srs_freep(tag_headers); srs_freepa(tag_headers);
srs_freep(iovss_cache); srs_freepa(iovss_cache);
srs_freep(ppts); srs_freepa(ppts);
#endif #endif
} }
@ -489,7 +489,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count)
int nb_iovss = 3 * count; int nb_iovss = 3 * count;
iovec* iovss = iovss_cache; iovec* iovss = iovss_cache;
if (nb_iovss_cache < nb_iovss) { if (nb_iovss_cache < nb_iovss) {
srs_freep(iovss_cache); srs_freepa(iovss_cache);
nb_iovss_cache = nb_iovss; nb_iovss_cache = nb_iovss;
iovss = iovss_cache = new iovec[nb_iovss]; iovss = iovss_cache = new iovec[nb_iovss];
@ -498,7 +498,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count)
// realloc the tag headers. // realloc the tag headers.
char* cache = tag_headers; char* cache = tag_headers;
if (nb_tag_headers < count) { if (nb_tag_headers < count) {
srs_freep(tag_headers); srs_freepa(tag_headers);
nb_tag_headers = count; nb_tag_headers = count;
cache = tag_headers = new char[SRS_FLV_TAG_HEADER_SIZE * count]; cache = tag_headers = new char[SRS_FLV_TAG_HEADER_SIZE * count];
@ -507,7 +507,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count)
// realloc the pts. // realloc the pts.
char* pts = ppts; char* pts = ppts;
if (nb_ppts < count) { if (nb_ppts < count) {
srs_freep(ppts); srs_freepa(ppts);
nb_ppts = count; nb_ppts = count;
pts = ppts = new char[SRS_FLV_PREVIOUS_TAG_SIZE * count]; pts = ppts = new char[SRS_FLV_PREVIOUS_TAG_SIZE * count];

View file

@ -915,7 +915,7 @@ SrsTsAdaptationField::SrsTsAdaptationField(SrsTsPacket* pkt)
SrsTsAdaptationField::~SrsTsAdaptationField() SrsTsAdaptationField::~SrsTsAdaptationField()
{ {
srs_freep(transport_private_data); srs_freepa(transport_private_data);
} }
int SrsTsAdaptationField::decode(SrsStream* stream) int SrsTsAdaptationField::decode(SrsStream* stream)
@ -1040,7 +1040,7 @@ int SrsTsAdaptationField::decode(SrsStream* stream)
srs_error("ts: demux af transport_private_data_flag failed. ret=%d", ret); srs_error("ts: demux af transport_private_data_flag failed. ret=%d", ret);
return ret; return ret;
} }
srs_freep(transport_private_data); srs_freepa(transport_private_data);
transport_private_data = new char[transport_private_data_length]; transport_private_data = new char[transport_private_data_length];
stream->read_bytes(transport_private_data, transport_private_data_length); stream->read_bytes(transport_private_data, transport_private_data_length);
} }
@ -1325,9 +1325,9 @@ SrsTsPayloadPES::SrsTsPayloadPES(SrsTsPacket* p) : SrsTsPayload(p)
SrsTsPayloadPES::~SrsTsPayloadPES() SrsTsPayloadPES::~SrsTsPayloadPES()
{ {
srs_freep(PES_private_data); srs_freepa(PES_private_data);
srs_freep(pack_field); srs_freepa(pack_field);
srs_freep(PES_extension_field); srs_freepa(PES_extension_field);
} }
int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
@ -1604,7 +1604,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
// 16B // 16B
if (PES_private_data_flag) { if (PES_private_data_flag) {
srs_freep(PES_private_data); srs_freepa(PES_private_data);
PES_private_data = new char[16]; PES_private_data = new char[16];
stream->read_bytes(PES_private_data, 16); stream->read_bytes(PES_private_data, 16);
} }
@ -1620,7 +1620,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
srs_error("ts: demux PSE ext pack failed. ret=%d", ret); srs_error("ts: demux PSE ext pack failed. ret=%d", ret);
return ret; return ret;
} }
srs_freep(pack_field); srs_freepa(pack_field);
pack_field = new char[pack_field_length]; pack_field = new char[pack_field_length];
stream->read_bytes(pack_field, pack_field_length); stream->read_bytes(pack_field, pack_field_length);
} }
@ -1658,7 +1658,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
srs_error("ts: demux PSE ext field failed. ret=%d", ret); srs_error("ts: demux PSE ext field failed. ret=%d", ret);
return ret; return ret;
} }
srs_freep(PES_extension_field); srs_freepa(PES_extension_field);
PES_extension_field = new char[PES_extension_field_length]; PES_extension_field = new char[PES_extension_field_length];
stream->read_bytes(PES_extension_field, PES_extension_field_length); stream->read_bytes(PES_extension_field, PES_extension_field_length);
} }
@ -2421,7 +2421,7 @@ SrsTsPayloadPMTESInfo::SrsTsPayloadPMTESInfo(SrsTsStream st, int16_t epid)
SrsTsPayloadPMTESInfo::~SrsTsPayloadPMTESInfo() SrsTsPayloadPMTESInfo::~SrsTsPayloadPMTESInfo()
{ {
srs_freep(ES_info); srs_freepa(ES_info);
} }
int SrsTsPayloadPMTESInfo::decode(SrsStream* stream) int SrsTsPayloadPMTESInfo::decode(SrsStream* stream)
@ -2451,7 +2451,7 @@ int SrsTsPayloadPMTESInfo::decode(SrsStream* stream)
srs_error("ts: demux PMT es info data failed. ret=%d", ret); srs_error("ts: demux PMT es info data failed. ret=%d", ret);
return ret; return ret;
} }
srs_freep(ES_info); srs_freepa(ES_info);
ES_info = new char[ES_info_length]; ES_info = new char[ES_info_length];
stream->read_bytes(ES_info, ES_info_length); stream->read_bytes(ES_info, ES_info_length);
} }
@ -2508,7 +2508,7 @@ SrsTsPayloadPMT::SrsTsPayloadPMT(SrsTsPacket* p) : SrsTsPayloadPSI(p)
SrsTsPayloadPMT::~SrsTsPayloadPMT() SrsTsPayloadPMT::~SrsTsPayloadPMT()
{ {
srs_freep(program_info_desc); srs_freepa(program_info_desc);
std::vector<SrsTsPayloadPMTESInfo*>::iterator it; std::vector<SrsTsPayloadPMTESInfo*>::iterator it;
for (it = infos.begin(); it != infos.end(); ++it) { for (it = infos.begin(); it != infos.end(); ++it) {
@ -2562,7 +2562,7 @@ int SrsTsPayloadPMT::psi_decode(SrsStream* stream)
return ret; return ret;
} }
srs_freep(program_info_desc); srs_freepa(program_info_desc);
program_info_desc = new char[program_info_length]; program_info_desc = new char[program_info_length];
stream->read_bytes(program_info_desc, program_info_length); stream->read_bytes(program_info_desc, program_info_length);
} }

View file

@ -2398,7 +2398,7 @@ int srs_human_print_rtmp_packet4(char type, u_int32_t timestamp, char* data, int
char* amf0_str = NULL; char* amf0_str = NULL;
srs_human_raw("%s", srs_human_amf0_print(amf0, &amf0_str, NULL)); srs_human_raw("%s", srs_human_amf0_print(amf0, &amf0_str, NULL));
srs_freep(amf0_str); srs_freepa(amf0_str);
} }
} else { } else {
srs_human_trace("Rtmp packet id=%"PRId64"/%.1f/%.1f, type=%#x, dts=%d, pts=%d, ndiff=%d, diff=%d, size=%d", srs_human_trace("Rtmp packet id=%"PRId64"/%.1f/%.1f, type=%#x, dts=%d, pts=%d, ndiff=%d, diff=%d, size=%d",

View file

@ -774,7 +774,7 @@ ISrsHttpMessage::ISrsHttpMessage()
ISrsHttpMessage::~ISrsHttpMessage() ISrsHttpMessage::~ISrsHttpMessage()
{ {
srs_freep(_http_ts_send_buffer); srs_freepa(_http_ts_send_buffer);
} }
char* ISrsHttpMessage::http_ts_send_buffer() char* ISrsHttpMessage::http_ts_send_buffer()

View file

@ -319,8 +319,8 @@ namespace _srs_internal
key_block::~key_block() key_block::~key_block()
{ {
srs_freep(random0); srs_freepa(random0);
srs_freep(random1); srs_freepa(random1);
} }
int key_block::parse(SrsStream* stream) int key_block::parse(SrsStream* stream)
@ -342,7 +342,7 @@ namespace _srs_internal
random0_size = valid_offset; random0_size = valid_offset;
if (random0_size > 0) { if (random0_size > 0) {
srs_freep(random0); srs_freepa(random0);
random0 = new char[random0_size]; random0 = new char[random0_size];
stream->read_bytes(random0, random0_size); stream->read_bytes(random0, random0_size);
} }
@ -351,7 +351,7 @@ namespace _srs_internal
random1_size = 764 - valid_offset - 128 - 4; random1_size = 764 - valid_offset - 128 - 4;
if (random1_size > 0) { if (random1_size > 0) {
srs_freep(random1); srs_freepa(random1);
random1 = new char[random1_size]; random1 = new char[random1_size];
stream->read_bytes(random1, random1_size); stream->read_bytes(random1, random1_size);
} }
@ -401,8 +401,8 @@ namespace _srs_internal
digest_block::~digest_block() digest_block::~digest_block()
{ {
srs_freep(random0); srs_freepa(random0);
srs_freep(random1); srs_freepa(random1);
} }
int digest_block::parse(SrsStream* stream) int digest_block::parse(SrsStream* stream)
@ -419,7 +419,7 @@ namespace _srs_internal
random0_size = valid_offset; random0_size = valid_offset;
if (random0_size > 0) { if (random0_size > 0) {
srs_freep(random0); srs_freepa(random0);
random0 = new char[random0_size]; random0 = new char[random0_size];
stream->read_bytes(random0, random0_size); stream->read_bytes(random0, random0_size);
} }
@ -428,7 +428,7 @@ namespace _srs_internal
random1_size = 764 - 4 - valid_offset - 32; random1_size = 764 - 4 - valid_offset - 32;
if (random1_size > 0) { if (random1_size > 0) {
srs_freep(random1); srs_freepa(random1);
random1 = new char[random1_size]; random1 = new char[random1_size];
stream->read_bytes(random1, random1_size); stream->read_bytes(random1, random1_size);
} }
@ -592,7 +592,7 @@ namespace _srs_internal
c1_digest = new char[SRS_OpensslHashSize]; c1_digest = new char[SRS_OpensslHashSize];
if ((ret = openssl_HMACsha256(SrsGenuineFPKey, 30, c1s1_joined_bytes, 1536 - 32, c1_digest)) != ERROR_SUCCESS) { if ((ret = openssl_HMACsha256(SrsGenuineFPKey, 30, c1s1_joined_bytes, 1536 - 32, c1_digest)) != ERROR_SUCCESS) {
srs_freep(c1_digest); srs_freepa(c1_digest);
srs_error("calc digest for c1 failed. ret=%d", ret); srs_error("calc digest for c1 failed. ret=%d", ret);
return ret; return ret;
} }
@ -620,7 +620,7 @@ namespace _srs_internal
s1_digest = new char[SRS_OpensslHashSize]; s1_digest = new char[SRS_OpensslHashSize];
if ((ret = openssl_HMACsha256(SrsGenuineFMSKey, 36, c1s1_joined_bytes, 1536 - 32, s1_digest)) != ERROR_SUCCESS) { if ((ret = openssl_HMACsha256(SrsGenuineFMSKey, 36, c1s1_joined_bytes, 1536 - 32, s1_digest)) != ERROR_SUCCESS) {
srs_freep(s1_digest); srs_freepa(s1_digest);
srs_error("calc digest for s1 failed. ret=%d", ret); srs_error("calc digest for s1 failed. ret=%d", ret);
return ret; return ret;
} }

View file

@ -40,7 +40,7 @@ SrsMessageArray::~SrsMessageArray()
// we just free the msgs itself, // we just free the msgs itself,
// both delete and delete[] is ok, // both delete and delete[] is ok,
// for each msg in msgs is already freed by send_and_free_messages. // for each msg in msgs is already freed by send_and_free_messages.
srs_freep(msgs); srs_freepa(msgs);
} }
void SrsMessageArray::free(int count) void SrsMessageArray::free(int count)

View file

@ -151,14 +151,14 @@ int SrsPacket::encode(int& psize, char*& ppayload)
if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) { if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) {
srs_error("initialize the stream failed. ret=%d", ret); srs_error("initialize the stream failed. ret=%d", ret);
srs_freep(payload); srs_freepa(payload);
return ret; return ret;
} }
} }
if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) { if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) {
srs_error("encode the packet failed. ret=%d", ret); srs_error("encode the packet failed. ret=%d", ret);
srs_freep(payload); srs_freepa(payload);
return ret; return ret;
} }
@ -279,7 +279,7 @@ SrsProtocol::~SrsProtocol()
SrsChunkStream* cs = cs_cache[i]; SrsChunkStream* cs = cs_cache[i];
srs_freep(cs); srs_freep(cs);
} }
srs_freep(cs_cache); srs_freepa(cs_cache);
} }
void SrsProtocol::set_auto_response(bool v) void SrsProtocol::set_auto_response(bool v)
@ -632,7 +632,7 @@ int SrsProtocol::do_send_and_free_packet(SrsPacket* packet, int stream_id)
header.perfer_cid = packet->get_prefer_cid(); header.perfer_cid = packet->get_prefer_cid();
ret = do_simple_send(&header, payload, size); ret = do_simple_send(&header, payload, size);
srs_freep(payload); srs_freepa(payload);
if (ret == ERROR_SUCCESS) { if (ret == ERROR_SUCCESS) {
ret = on_send_packet(&header, packet); ret = on_send_packet(&header, packet);
} }
@ -1765,9 +1765,9 @@ SrsHandshakeBytes::SrsHandshakeBytes()
SrsHandshakeBytes::~SrsHandshakeBytes() SrsHandshakeBytes::~SrsHandshakeBytes()
{ {
srs_freep(c0c1); srs_freepa(c0c1);
srs_freep(s0s1s2); srs_freepa(s0s1s2);
srs_freep(c2); srs_freepa(c2);
} }
int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io) int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io)

View file

@ -217,7 +217,7 @@ int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, in
// only when failed, we must free the data. // only when failed, we must free the data.
if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) { if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) {
srs_freep(data); srs_freepa(data);
return ret; return ret;
} }