正在显示
16 个修改的文件
包含
69 行增加
和
64 行删除
| @@ -205,7 +205,7 @@ int SrsDynamicHttpConn::do_proxy(ISrsHttpResponseReader* rr, SrsFlvDecoder* dec) | @@ -205,7 +205,7 @@ int SrsDynamicHttpConn::do_proxy(ISrsHttpResponseReader* rr, SrsFlvDecoder* dec) | ||
| 205 | 205 | ||
| 206 | char* data = new char[size]; | 206 | char* data = new char[size]; |
| 207 | if ((ret = dec->read_tag_data(data, size)) != ERROR_SUCCESS) { | 207 | if ((ret = dec->read_tag_data(data, size)) != ERROR_SUCCESS) { |
| 208 | - srs_freep(data); | 208 | + srs_freepa(data); |
| 209 | if (!srs_is_client_gracefully_close(ret)) { | 209 | if (!srs_is_client_gracefully_close(ret)) { |
| 210 | srs_error("flv: proxy tag data failed. ret=%d", ret); | 210 | srs_error("flv: proxy tag data failed. ret=%d", ret); |
| 211 | } | 211 | } |
| @@ -433,7 +433,7 @@ int SrsConfDirective::read_token(SrsConfigBuffer* buffer, vector<string>& args, | @@ -433,7 +433,7 @@ int SrsConfDirective::read_token(SrsConfigBuffer* buffer, vector<string>& args, | ||
| 433 | if (!word_str.empty()) { | 433 | if (!word_str.empty()) { |
| 434 | args.push_back(word_str); | 434 | args.push_back(word_str); |
| 435 | } | 435 | } |
| 436 | - srs_freep(aword); | 436 | + srs_freepa(aword); |
| 437 | 437 | ||
| 438 | if (ch == ';') { | 438 | if (ch == ';') { |
| 439 | return ERROR_SYSTEM_CONFIG_DIRECTIVE; | 439 | return ERROR_SYSTEM_CONFIG_DIRECTIVE; |
| @@ -4488,7 +4488,7 @@ namespace _srs_internal | @@ -4488,7 +4488,7 @@ namespace _srs_internal | ||
| 4488 | 4488 | ||
| 4489 | SrsConfigBuffer::~SrsConfigBuffer() | 4489 | SrsConfigBuffer::~SrsConfigBuffer() |
| 4490 | { | 4490 | { |
| 4491 | - srs_freep(start); | 4491 | + srs_freepa(start); |
| 4492 | } | 4492 | } |
| 4493 | 4493 | ||
| 4494 | int SrsConfigBuffer::fullfill(const char* filename) | 4494 | int SrsConfigBuffer::fullfill(const char* filename) |
| @@ -4507,7 +4507,7 @@ namespace _srs_internal | @@ -4507,7 +4507,7 @@ namespace _srs_internal | ||
| 4507 | int filesize = (int)reader.filesize(); | 4507 | int filesize = (int)reader.filesize(); |
| 4508 | 4508 | ||
| 4509 | // create buffer | 4509 | // create buffer |
| 4510 | - srs_freep(start); | 4510 | + srs_freepa(start); |
| 4511 | pos = last = start = new char[filesize]; | 4511 | pos = last = start = new char[filesize]; |
| 4512 | end = start + filesize; | 4512 | end = start + filesize; |
| 4513 | 4513 |
| @@ -76,7 +76,7 @@ SrsHttpResponseWriter::SrsHttpResponseWriter(SrsStSocket* io) | @@ -76,7 +76,7 @@ SrsHttpResponseWriter::SrsHttpResponseWriter(SrsStSocket* io) | ||
| 76 | SrsHttpResponseWriter::~SrsHttpResponseWriter() | 76 | SrsHttpResponseWriter::~SrsHttpResponseWriter() |
| 77 | { | 77 | { |
| 78 | srs_freep(hdr); | 78 | srs_freep(hdr); |
| 79 | - srs_freep(iovss_cache); | 79 | + srs_freepa(iovss_cache); |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | int SrsHttpResponseWriter::final_request() | 82 | int SrsHttpResponseWriter::final_request() |
| @@ -188,7 +188,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | @@ -188,7 +188,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | ||
| 188 | int nb_iovss = 3 + iovcnt; | 188 | int nb_iovss = 3 + iovcnt; |
| 189 | iovec* iovss = iovss_cache; | 189 | iovec* iovss = iovss_cache; |
| 190 | if (nb_iovss_cache < nb_iovss) { | 190 | if (nb_iovss_cache < nb_iovss) { |
| 191 | - srs_freep(iovss_cache); | 191 | + srs_freepa(iovss_cache); |
| 192 | nb_iovss_cache = nb_iovss; | 192 | nb_iovss_cache = nb_iovss; |
| 193 | iovss = iovss_cache = new iovec[nb_iovss]; | 193 | iovss = iovss_cache = new iovec[nb_iovss]; |
| 194 | } | 194 | } |
| @@ -506,7 +506,7 @@ SrsHttpMessage::~SrsHttpMessage() | @@ -506,7 +506,7 @@ SrsHttpMessage::~SrsHttpMessage() | ||
| 506 | { | 506 | { |
| 507 | srs_freep(_body); | 507 | srs_freep(_body); |
| 508 | srs_freep(_uri); | 508 | srs_freep(_uri); |
| 509 | - srs_freep(_http_ts_send_buffer); | 509 | + srs_freepa(_http_ts_send_buffer); |
| 510 | } | 510 | } |
| 511 | 511 | ||
| 512 | int SrsHttpMessage::update(string url, http_parser* header, SrsFastBuffer* body, vector<SrsHttpHeaderField>& headers) | 512 | int SrsHttpMessage::update(string url, http_parser* header, SrsFastBuffer* body, vector<SrsHttpHeaderField>& headers) |
| @@ -94,7 +94,7 @@ SrsUdpListener::~SrsUdpListener() | @@ -94,7 +94,7 @@ SrsUdpListener::~SrsUdpListener() | ||
| 94 | // close it manually. | 94 | // close it manually. |
| 95 | close(_fd); | 95 | close(_fd); |
| 96 | 96 | ||
| 97 | - srs_freep(buf); | 97 | + srs_freepa(buf); |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | int SrsUdpListener::fd() | 100 | int SrsUdpListener::fd() |
| @@ -161,7 +161,7 @@ SrsFastVector::SrsFastVector() | @@ -161,7 +161,7 @@ SrsFastVector::SrsFastVector() | ||
| 161 | SrsFastVector::~SrsFastVector() | 161 | SrsFastVector::~SrsFastVector() |
| 162 | { | 162 | { |
| 163 | free(); | 163 | free(); |
| 164 | - srs_freep(msgs); | 164 | + srs_freepa(msgs); |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | int SrsFastVector::size() | 167 | int SrsFastVector::size() |
| @@ -220,7 +220,7 @@ void SrsFastVector::push_back(SrsSharedPtrMessage* msg) | @@ -220,7 +220,7 @@ void SrsFastVector::push_back(SrsSharedPtrMessage* msg) | ||
| 220 | srs_warn("fast vector incrase %d=>%d", nb_msgs, size); | 220 | srs_warn("fast vector incrase %d=>%d", nb_msgs, size); |
| 221 | 221 | ||
| 222 | // use new array. | 222 | // use new array. |
| 223 | - srs_freep(msgs); | 223 | + srs_freepa(msgs); |
| 224 | msgs = buf; | 224 | msgs = buf; |
| 225 | nb_msgs = size; | 225 | nb_msgs = size; |
| 226 | } | 226 | } |
| @@ -103,9 +103,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -103,9 +103,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 103 | p = NULL; \ | 103 | p = NULL; \ |
| 104 | } \ | 104 | } \ |
| 105 | (void)0 | 105 | (void)0 |
| 106 | -// sometimes, the freepa is useless, | ||
| 107 | -// it's recomments to free each elem explicit. | ||
| 108 | -// so we remove the srs_freepa utility. | 106 | +// please use the freepa(T[]) to free an array, |
| 107 | +// or the behavior is undefined. | ||
| 108 | +#define srs_freepa(pa) \ | ||
| 109 | + if (pa) { \ | ||
| 110 | + delete[] pa; \ | ||
| 111 | + pa = NULL; \ | ||
| 112 | + } \ | ||
| 113 | + (void)0 | ||
| 109 | 114 | ||
| 110 | /** | 115 | /** |
| 111 | * disable copy constructor of class, | 116 | * disable copy constructor of class, |
| @@ -419,12 +419,12 @@ SrsAvcAacCodec::SrsAvcAacCodec() | @@ -419,12 +419,12 @@ SrsAvcAacCodec::SrsAvcAacCodec() | ||
| 419 | 419 | ||
| 420 | SrsAvcAacCodec::~SrsAvcAacCodec() | 420 | SrsAvcAacCodec::~SrsAvcAacCodec() |
| 421 | { | 421 | { |
| 422 | - srs_freep(avc_extra_data); | ||
| 423 | - srs_freep(aac_extra_data); | 422 | + srs_freepa(avc_extra_data); |
| 423 | + srs_freepa(aac_extra_data); | ||
| 424 | 424 | ||
| 425 | srs_freep(stream); | 425 | srs_freep(stream); |
| 426 | - srs_freep(sequenceParameterSetNALUnit); | ||
| 427 | - srs_freep(pictureParameterSetNALUnit); | 426 | + srs_freepa(sequenceParameterSetNALUnit); |
| 427 | + srs_freepa(pictureParameterSetNALUnit); | ||
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | bool SrsAvcAacCodec::is_avc_codec_ok() | 430 | bool SrsAvcAacCodec::is_avc_codec_ok() |
| @@ -500,7 +500,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample | @@ -500,7 +500,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample | ||
| 500 | // 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33. | 500 | // 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33. |
| 501 | aac_extra_size = stream->size() - stream->pos(); | 501 | aac_extra_size = stream->size() - stream->pos(); |
| 502 | if (aac_extra_size > 0) { | 502 | if (aac_extra_size > 0) { |
| 503 | - srs_freep(aac_extra_data); | 503 | + srs_freepa(aac_extra_data); |
| 504 | aac_extra_data = new char[aac_extra_size]; | 504 | aac_extra_data = new char[aac_extra_size]; |
| 505 | memcpy(aac_extra_data, stream->data() + stream->pos(), aac_extra_size); | 505 | memcpy(aac_extra_data, stream->data() + stream->pos(), aac_extra_size); |
| 506 | 506 | ||
| @@ -764,7 +764,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream) | @@ -764,7 +764,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream) | ||
| 764 | // 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16 | 764 | // 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16 |
| 765 | avc_extra_size = stream->size() - stream->pos(); | 765 | avc_extra_size = stream->size() - stream->pos(); |
| 766 | if (avc_extra_size > 0) { | 766 | if (avc_extra_size > 0) { |
| 767 | - srs_freep(avc_extra_data); | 767 | + srs_freepa(avc_extra_data); |
| 768 | avc_extra_data = new char[avc_extra_size]; | 768 | avc_extra_data = new char[avc_extra_size]; |
| 769 | memcpy(avc_extra_data, stream->data() + stream->pos(), avc_extra_size); | 769 | memcpy(avc_extra_data, stream->data() + stream->pos(), avc_extra_size); |
| 770 | } | 770 | } |
| @@ -825,7 +825,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream) | @@ -825,7 +825,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream) | ||
| 825 | return ret; | 825 | return ret; |
| 826 | } | 826 | } |
| 827 | if (sequenceParameterSetLength > 0) { | 827 | if (sequenceParameterSetLength > 0) { |
| 828 | - srs_freep(sequenceParameterSetNALUnit); | 828 | + srs_freepa(sequenceParameterSetNALUnit); |
| 829 | sequenceParameterSetNALUnit = new char[sequenceParameterSetLength]; | 829 | sequenceParameterSetNALUnit = new char[sequenceParameterSetLength]; |
| 830 | stream->read_bytes(sequenceParameterSetNALUnit, sequenceParameterSetLength); | 830 | stream->read_bytes(sequenceParameterSetNALUnit, sequenceParameterSetLength); |
| 831 | } | 831 | } |
| @@ -854,7 +854,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream) | @@ -854,7 +854,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsStream* stream) | ||
| 854 | return ret; | 854 | return ret; |
| 855 | } | 855 | } |
| 856 | if (pictureParameterSetLength > 0) { | 856 | if (pictureParameterSetLength > 0) { |
| 857 | - srs_freep(pictureParameterSetNALUnit); | 857 | + srs_freepa(pictureParameterSetNALUnit); |
| 858 | pictureParameterSetNALUnit = new char[pictureParameterSetLength]; | 858 | pictureParameterSetNALUnit = new char[pictureParameterSetLength]; |
| 859 | stream->read_bytes(pictureParameterSetNALUnit, pictureParameterSetLength); | 859 | stream->read_bytes(pictureParameterSetNALUnit, pictureParameterSetLength); |
| 860 | } | 860 | } |
| @@ -163,12 +163,12 @@ SrsCommonMessage::~SrsCommonMessage() | @@ -163,12 +163,12 @@ SrsCommonMessage::~SrsCommonMessage() | ||
| 163 | #ifdef SRS_AUTO_MEM_WATCH | 163 | #ifdef SRS_AUTO_MEM_WATCH |
| 164 | srs_memory_unwatch(payload); | 164 | srs_memory_unwatch(payload); |
| 165 | #endif | 165 | #endif |
| 166 | - srs_freep(payload); | 166 | + srs_freepa(payload); |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | void SrsCommonMessage::create_payload(int size) | 169 | void SrsCommonMessage::create_payload(int size) |
| 170 | { | 170 | { |
| 171 | - srs_freep(payload); | 171 | + srs_freepa(payload); |
| 172 | 172 | ||
| 173 | payload = new char[size]; | 173 | payload = new char[size]; |
| 174 | srs_verbose("create payload for RTMP message. size=%d", size); | 174 | srs_verbose("create payload for RTMP message. size=%d", size); |
| @@ -190,7 +190,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload() | @@ -190,7 +190,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload() | ||
| 190 | #ifdef SRS_AUTO_MEM_WATCH | 190 | #ifdef SRS_AUTO_MEM_WATCH |
| 191 | srs_memory_unwatch(payload); | 191 | srs_memory_unwatch(payload); |
| 192 | #endif | 192 | #endif |
| 193 | - srs_freep(payload); | 193 | + srs_freepa(payload); |
| 194 | } | 194 | } |
| 195 | 195 | ||
| 196 | SrsSharedPtrMessage::SrsSharedPtrMessage() | 196 | SrsSharedPtrMessage::SrsSharedPtrMessage() |
| @@ -350,9 +350,9 @@ SrsFlvEncoder::~SrsFlvEncoder() | @@ -350,9 +350,9 @@ SrsFlvEncoder::~SrsFlvEncoder() | ||
| 350 | srs_freep(tag_stream); | 350 | srs_freep(tag_stream); |
| 351 | 351 | ||
| 352 | #ifdef SRS_PERF_FAST_FLV_ENCODER | 352 | #ifdef SRS_PERF_FAST_FLV_ENCODER |
| 353 | - srs_freep(tag_headers); | ||
| 354 | - srs_freep(iovss_cache); | ||
| 355 | - srs_freep(ppts); | 353 | + srs_freepa(tag_headers); |
| 354 | + srs_freepa(iovss_cache); | ||
| 355 | + srs_freepa(ppts); | ||
| 356 | #endif | 356 | #endif |
| 357 | } | 357 | } |
| 358 | 358 | ||
| @@ -489,7 +489,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | @@ -489,7 +489,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | ||
| 489 | int nb_iovss = 3 * count; | 489 | int nb_iovss = 3 * count; |
| 490 | iovec* iovss = iovss_cache; | 490 | iovec* iovss = iovss_cache; |
| 491 | if (nb_iovss_cache < nb_iovss) { | 491 | if (nb_iovss_cache < nb_iovss) { |
| 492 | - srs_freep(iovss_cache); | 492 | + srs_freepa(iovss_cache); |
| 493 | 493 | ||
| 494 | nb_iovss_cache = nb_iovss; | 494 | nb_iovss_cache = nb_iovss; |
| 495 | iovss = iovss_cache = new iovec[nb_iovss]; | 495 | iovss = iovss_cache = new iovec[nb_iovss]; |
| @@ -498,7 +498,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | @@ -498,7 +498,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | ||
| 498 | // realloc the tag headers. | 498 | // realloc the tag headers. |
| 499 | char* cache = tag_headers; | 499 | char* cache = tag_headers; |
| 500 | if (nb_tag_headers < count) { | 500 | if (nb_tag_headers < count) { |
| 501 | - srs_freep(tag_headers); | 501 | + srs_freepa(tag_headers); |
| 502 | 502 | ||
| 503 | nb_tag_headers = count; | 503 | nb_tag_headers = count; |
| 504 | cache = tag_headers = new char[SRS_FLV_TAG_HEADER_SIZE * count]; | 504 | cache = tag_headers = new char[SRS_FLV_TAG_HEADER_SIZE * count]; |
| @@ -507,7 +507,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | @@ -507,7 +507,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | ||
| 507 | // realloc the pts. | 507 | // realloc the pts. |
| 508 | char* pts = ppts; | 508 | char* pts = ppts; |
| 509 | if (nb_ppts < count) { | 509 | if (nb_ppts < count) { |
| 510 | - srs_freep(ppts); | 510 | + srs_freepa(ppts); |
| 511 | 511 | ||
| 512 | nb_ppts = count; | 512 | nb_ppts = count; |
| 513 | pts = ppts = new char[SRS_FLV_PREVIOUS_TAG_SIZE * count]; | 513 | pts = ppts = new char[SRS_FLV_PREVIOUS_TAG_SIZE * count]; |
| @@ -915,7 +915,7 @@ SrsTsAdaptationField::SrsTsAdaptationField(SrsTsPacket* pkt) | @@ -915,7 +915,7 @@ SrsTsAdaptationField::SrsTsAdaptationField(SrsTsPacket* pkt) | ||
| 915 | 915 | ||
| 916 | SrsTsAdaptationField::~SrsTsAdaptationField() | 916 | SrsTsAdaptationField::~SrsTsAdaptationField() |
| 917 | { | 917 | { |
| 918 | - srs_freep(transport_private_data); | 918 | + srs_freepa(transport_private_data); |
| 919 | } | 919 | } |
| 920 | 920 | ||
| 921 | int SrsTsAdaptationField::decode(SrsStream* stream) | 921 | int SrsTsAdaptationField::decode(SrsStream* stream) |
| @@ -1040,7 +1040,7 @@ int SrsTsAdaptationField::decode(SrsStream* stream) | @@ -1040,7 +1040,7 @@ int SrsTsAdaptationField::decode(SrsStream* stream) | ||
| 1040 | srs_error("ts: demux af transport_private_data_flag failed. ret=%d", ret); | 1040 | srs_error("ts: demux af transport_private_data_flag failed. ret=%d", ret); |
| 1041 | return ret; | 1041 | return ret; |
| 1042 | } | 1042 | } |
| 1043 | - srs_freep(transport_private_data); | 1043 | + srs_freepa(transport_private_data); |
| 1044 | transport_private_data = new char[transport_private_data_length]; | 1044 | transport_private_data = new char[transport_private_data_length]; |
| 1045 | stream->read_bytes(transport_private_data, transport_private_data_length); | 1045 | stream->read_bytes(transport_private_data, transport_private_data_length); |
| 1046 | } | 1046 | } |
| @@ -1325,9 +1325,9 @@ SrsTsPayloadPES::SrsTsPayloadPES(SrsTsPacket* p) : SrsTsPayload(p) | @@ -1325,9 +1325,9 @@ SrsTsPayloadPES::SrsTsPayloadPES(SrsTsPacket* p) : SrsTsPayload(p) | ||
| 1325 | 1325 | ||
| 1326 | SrsTsPayloadPES::~SrsTsPayloadPES() | 1326 | SrsTsPayloadPES::~SrsTsPayloadPES() |
| 1327 | { | 1327 | { |
| 1328 | - srs_freep(PES_private_data); | ||
| 1329 | - srs_freep(pack_field); | ||
| 1330 | - srs_freep(PES_extension_field); | 1328 | + srs_freepa(PES_private_data); |
| 1329 | + srs_freepa(pack_field); | ||
| 1330 | + srs_freepa(PES_extension_field); | ||
| 1331 | } | 1331 | } |
| 1332 | 1332 | ||
| 1333 | int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) | 1333 | int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) |
| @@ -1604,7 +1604,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) | @@ -1604,7 +1604,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) | ||
| 1604 | 1604 | ||
| 1605 | // 16B | 1605 | // 16B |
| 1606 | if (PES_private_data_flag) { | 1606 | if (PES_private_data_flag) { |
| 1607 | - srs_freep(PES_private_data); | 1607 | + srs_freepa(PES_private_data); |
| 1608 | PES_private_data = new char[16]; | 1608 | PES_private_data = new char[16]; |
| 1609 | stream->read_bytes(PES_private_data, 16); | 1609 | stream->read_bytes(PES_private_data, 16); |
| 1610 | } | 1610 | } |
| @@ -1620,7 +1620,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) | @@ -1620,7 +1620,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) | ||
| 1620 | srs_error("ts: demux PSE ext pack failed. ret=%d", ret); | 1620 | srs_error("ts: demux PSE ext pack failed. ret=%d", ret); |
| 1621 | return ret; | 1621 | return ret; |
| 1622 | } | 1622 | } |
| 1623 | - srs_freep(pack_field); | 1623 | + srs_freepa(pack_field); |
| 1624 | pack_field = new char[pack_field_length]; | 1624 | pack_field = new char[pack_field_length]; |
| 1625 | stream->read_bytes(pack_field, pack_field_length); | 1625 | stream->read_bytes(pack_field, pack_field_length); |
| 1626 | } | 1626 | } |
| @@ -1658,7 +1658,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) | @@ -1658,7 +1658,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg) | ||
| 1658 | srs_error("ts: demux PSE ext field failed. ret=%d", ret); | 1658 | srs_error("ts: demux PSE ext field failed. ret=%d", ret); |
| 1659 | return ret; | 1659 | return ret; |
| 1660 | } | 1660 | } |
| 1661 | - srs_freep(PES_extension_field); | 1661 | + srs_freepa(PES_extension_field); |
| 1662 | PES_extension_field = new char[PES_extension_field_length]; | 1662 | PES_extension_field = new char[PES_extension_field_length]; |
| 1663 | stream->read_bytes(PES_extension_field, PES_extension_field_length); | 1663 | stream->read_bytes(PES_extension_field, PES_extension_field_length); |
| 1664 | } | 1664 | } |
| @@ -2421,7 +2421,7 @@ SrsTsPayloadPMTESInfo::SrsTsPayloadPMTESInfo(SrsTsStream st, int16_t epid) | @@ -2421,7 +2421,7 @@ SrsTsPayloadPMTESInfo::SrsTsPayloadPMTESInfo(SrsTsStream st, int16_t epid) | ||
| 2421 | 2421 | ||
| 2422 | SrsTsPayloadPMTESInfo::~SrsTsPayloadPMTESInfo() | 2422 | SrsTsPayloadPMTESInfo::~SrsTsPayloadPMTESInfo() |
| 2423 | { | 2423 | { |
| 2424 | - srs_freep(ES_info); | 2424 | + srs_freepa(ES_info); |
| 2425 | } | 2425 | } |
| 2426 | 2426 | ||
| 2427 | int SrsTsPayloadPMTESInfo::decode(SrsStream* stream) | 2427 | int SrsTsPayloadPMTESInfo::decode(SrsStream* stream) |
| @@ -2451,7 +2451,7 @@ int SrsTsPayloadPMTESInfo::decode(SrsStream* stream) | @@ -2451,7 +2451,7 @@ int SrsTsPayloadPMTESInfo::decode(SrsStream* stream) | ||
| 2451 | srs_error("ts: demux PMT es info data failed. ret=%d", ret); | 2451 | srs_error("ts: demux PMT es info data failed. ret=%d", ret); |
| 2452 | return ret; | 2452 | return ret; |
| 2453 | } | 2453 | } |
| 2454 | - srs_freep(ES_info); | 2454 | + srs_freepa(ES_info); |
| 2455 | ES_info = new char[ES_info_length]; | 2455 | ES_info = new char[ES_info_length]; |
| 2456 | stream->read_bytes(ES_info, ES_info_length); | 2456 | stream->read_bytes(ES_info, ES_info_length); |
| 2457 | } | 2457 | } |
| @@ -2508,7 +2508,7 @@ SrsTsPayloadPMT::SrsTsPayloadPMT(SrsTsPacket* p) : SrsTsPayloadPSI(p) | @@ -2508,7 +2508,7 @@ SrsTsPayloadPMT::SrsTsPayloadPMT(SrsTsPacket* p) : SrsTsPayloadPSI(p) | ||
| 2508 | 2508 | ||
| 2509 | SrsTsPayloadPMT::~SrsTsPayloadPMT() | 2509 | SrsTsPayloadPMT::~SrsTsPayloadPMT() |
| 2510 | { | 2510 | { |
| 2511 | - srs_freep(program_info_desc); | 2511 | + srs_freepa(program_info_desc); |
| 2512 | 2512 | ||
| 2513 | std::vector<SrsTsPayloadPMTESInfo*>::iterator it; | 2513 | std::vector<SrsTsPayloadPMTESInfo*>::iterator it; |
| 2514 | for (it = infos.begin(); it != infos.end(); ++it) { | 2514 | for (it = infos.begin(); it != infos.end(); ++it) { |
| @@ -2562,7 +2562,7 @@ int SrsTsPayloadPMT::psi_decode(SrsStream* stream) | @@ -2562,7 +2562,7 @@ int SrsTsPayloadPMT::psi_decode(SrsStream* stream) | ||
| 2562 | return ret; | 2562 | return ret; |
| 2563 | } | 2563 | } |
| 2564 | 2564 | ||
| 2565 | - srs_freep(program_info_desc); | 2565 | + srs_freepa(program_info_desc); |
| 2566 | program_info_desc = new char[program_info_length]; | 2566 | program_info_desc = new char[program_info_length]; |
| 2567 | stream->read_bytes(program_info_desc, program_info_length); | 2567 | stream->read_bytes(program_info_desc, program_info_length); |
| 2568 | } | 2568 | } |
| @@ -2398,7 +2398,7 @@ int srs_human_print_rtmp_packet4(char type, u_int32_t timestamp, char* data, int | @@ -2398,7 +2398,7 @@ int srs_human_print_rtmp_packet4(char type, u_int32_t timestamp, char* data, int | ||
| 2398 | 2398 | ||
| 2399 | char* amf0_str = NULL; | 2399 | char* amf0_str = NULL; |
| 2400 | srs_human_raw("%s", srs_human_amf0_print(amf0, &amf0_str, NULL)); | 2400 | srs_human_raw("%s", srs_human_amf0_print(amf0, &amf0_str, NULL)); |
| 2401 | - srs_freep(amf0_str); | 2401 | + srs_freepa(amf0_str); |
| 2402 | } | 2402 | } |
| 2403 | } else { | 2403 | } else { |
| 2404 | srs_human_trace("Rtmp packet id=%"PRId64"/%.1f/%.1f, type=%#x, dts=%d, pts=%d, ndiff=%d, diff=%d, size=%d", | 2404 | srs_human_trace("Rtmp packet id=%"PRId64"/%.1f/%.1f, type=%#x, dts=%d, pts=%d, ndiff=%d, diff=%d, size=%d", |
| @@ -774,7 +774,7 @@ ISrsHttpMessage::ISrsHttpMessage() | @@ -774,7 +774,7 @@ ISrsHttpMessage::ISrsHttpMessage() | ||
| 774 | 774 | ||
| 775 | ISrsHttpMessage::~ISrsHttpMessage() | 775 | ISrsHttpMessage::~ISrsHttpMessage() |
| 776 | { | 776 | { |
| 777 | - srs_freep(_http_ts_send_buffer); | 777 | + srs_freepa(_http_ts_send_buffer); |
| 778 | } | 778 | } |
| 779 | 779 | ||
| 780 | char* ISrsHttpMessage::http_ts_send_buffer() | 780 | char* ISrsHttpMessage::http_ts_send_buffer() |
| @@ -319,8 +319,8 @@ namespace _srs_internal | @@ -319,8 +319,8 @@ namespace _srs_internal | ||
| 319 | 319 | ||
| 320 | key_block::~key_block() | 320 | key_block::~key_block() |
| 321 | { | 321 | { |
| 322 | - srs_freep(random0); | ||
| 323 | - srs_freep(random1); | 322 | + srs_freepa(random0); |
| 323 | + srs_freepa(random1); | ||
| 324 | } | 324 | } |
| 325 | 325 | ||
| 326 | int key_block::parse(SrsStream* stream) | 326 | int key_block::parse(SrsStream* stream) |
| @@ -342,7 +342,7 @@ namespace _srs_internal | @@ -342,7 +342,7 @@ namespace _srs_internal | ||
| 342 | 342 | ||
| 343 | random0_size = valid_offset; | 343 | random0_size = valid_offset; |
| 344 | if (random0_size > 0) { | 344 | if (random0_size > 0) { |
| 345 | - srs_freep(random0); | 345 | + srs_freepa(random0); |
| 346 | random0 = new char[random0_size]; | 346 | random0 = new char[random0_size]; |
| 347 | stream->read_bytes(random0, random0_size); | 347 | stream->read_bytes(random0, random0_size); |
| 348 | } | 348 | } |
| @@ -351,7 +351,7 @@ namespace _srs_internal | @@ -351,7 +351,7 @@ namespace _srs_internal | ||
| 351 | 351 | ||
| 352 | random1_size = 764 - valid_offset - 128 - 4; | 352 | random1_size = 764 - valid_offset - 128 - 4; |
| 353 | if (random1_size > 0) { | 353 | if (random1_size > 0) { |
| 354 | - srs_freep(random1); | 354 | + srs_freepa(random1); |
| 355 | random1 = new char[random1_size]; | 355 | random1 = new char[random1_size]; |
| 356 | stream->read_bytes(random1, random1_size); | 356 | stream->read_bytes(random1, random1_size); |
| 357 | } | 357 | } |
| @@ -401,8 +401,8 @@ namespace _srs_internal | @@ -401,8 +401,8 @@ namespace _srs_internal | ||
| 401 | 401 | ||
| 402 | digest_block::~digest_block() | 402 | digest_block::~digest_block() |
| 403 | { | 403 | { |
| 404 | - srs_freep(random0); | ||
| 405 | - srs_freep(random1); | 404 | + srs_freepa(random0); |
| 405 | + srs_freepa(random1); | ||
| 406 | } | 406 | } |
| 407 | 407 | ||
| 408 | int digest_block::parse(SrsStream* stream) | 408 | int digest_block::parse(SrsStream* stream) |
| @@ -419,7 +419,7 @@ namespace _srs_internal | @@ -419,7 +419,7 @@ namespace _srs_internal | ||
| 419 | 419 | ||
| 420 | random0_size = valid_offset; | 420 | random0_size = valid_offset; |
| 421 | if (random0_size > 0) { | 421 | if (random0_size > 0) { |
| 422 | - srs_freep(random0); | 422 | + srs_freepa(random0); |
| 423 | random0 = new char[random0_size]; | 423 | random0 = new char[random0_size]; |
| 424 | stream->read_bytes(random0, random0_size); | 424 | stream->read_bytes(random0, random0_size); |
| 425 | } | 425 | } |
| @@ -428,7 +428,7 @@ namespace _srs_internal | @@ -428,7 +428,7 @@ namespace _srs_internal | ||
| 428 | 428 | ||
| 429 | random1_size = 764 - 4 - valid_offset - 32; | 429 | random1_size = 764 - 4 - valid_offset - 32; |
| 430 | if (random1_size > 0) { | 430 | if (random1_size > 0) { |
| 431 | - srs_freep(random1); | 431 | + srs_freepa(random1); |
| 432 | random1 = new char[random1_size]; | 432 | random1 = new char[random1_size]; |
| 433 | stream->read_bytes(random1, random1_size); | 433 | stream->read_bytes(random1, random1_size); |
| 434 | } | 434 | } |
| @@ -592,7 +592,7 @@ namespace _srs_internal | @@ -592,7 +592,7 @@ namespace _srs_internal | ||
| 592 | 592 | ||
| 593 | c1_digest = new char[SRS_OpensslHashSize]; | 593 | c1_digest = new char[SRS_OpensslHashSize]; |
| 594 | if ((ret = openssl_HMACsha256(SrsGenuineFPKey, 30, c1s1_joined_bytes, 1536 - 32, c1_digest)) != ERROR_SUCCESS) { | 594 | if ((ret = openssl_HMACsha256(SrsGenuineFPKey, 30, c1s1_joined_bytes, 1536 - 32, c1_digest)) != ERROR_SUCCESS) { |
| 595 | - srs_freep(c1_digest); | 595 | + srs_freepa(c1_digest); |
| 596 | srs_error("calc digest for c1 failed. ret=%d", ret); | 596 | srs_error("calc digest for c1 failed. ret=%d", ret); |
| 597 | return ret; | 597 | return ret; |
| 598 | } | 598 | } |
| @@ -620,7 +620,7 @@ namespace _srs_internal | @@ -620,7 +620,7 @@ namespace _srs_internal | ||
| 620 | 620 | ||
| 621 | s1_digest = new char[SRS_OpensslHashSize]; | 621 | s1_digest = new char[SRS_OpensslHashSize]; |
| 622 | if ((ret = openssl_HMACsha256(SrsGenuineFMSKey, 36, c1s1_joined_bytes, 1536 - 32, s1_digest)) != ERROR_SUCCESS) { | 622 | if ((ret = openssl_HMACsha256(SrsGenuineFMSKey, 36, c1s1_joined_bytes, 1536 - 32, s1_digest)) != ERROR_SUCCESS) { |
| 623 | - srs_freep(s1_digest); | 623 | + srs_freepa(s1_digest); |
| 624 | srs_error("calc digest for s1 failed. ret=%d", ret); | 624 | srs_error("calc digest for s1 failed. ret=%d", ret); |
| 625 | return ret; | 625 | return ret; |
| 626 | } | 626 | } |
| @@ -40,7 +40,7 @@ SrsMessageArray::~SrsMessageArray() | @@ -40,7 +40,7 @@ SrsMessageArray::~SrsMessageArray() | ||
| 40 | // we just free the msgs itself, | 40 | // we just free the msgs itself, |
| 41 | // both delete and delete[] is ok, | 41 | // both delete and delete[] is ok, |
| 42 | // for each msg in msgs is already freed by send_and_free_messages. | 42 | // for each msg in msgs is already freed by send_and_free_messages. |
| 43 | - srs_freep(msgs); | 43 | + srs_freepa(msgs); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | void SrsMessageArray::free(int count) | 46 | void SrsMessageArray::free(int count) |
| @@ -151,14 +151,14 @@ int SrsPacket::encode(int& psize, char*& ppayload) | @@ -151,14 +151,14 @@ int SrsPacket::encode(int& psize, char*& ppayload) | ||
| 151 | 151 | ||
| 152 | if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) { | 152 | if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) { |
| 153 | srs_error("initialize the stream failed. ret=%d", ret); | 153 | srs_error("initialize the stream failed. ret=%d", ret); |
| 154 | - srs_freep(payload); | 154 | + srs_freepa(payload); |
| 155 | return ret; | 155 | return ret; |
| 156 | } | 156 | } |
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) { | 159 | if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) { |
| 160 | srs_error("encode the packet failed. ret=%d", ret); | 160 | srs_error("encode the packet failed. ret=%d", ret); |
| 161 | - srs_freep(payload); | 161 | + srs_freepa(payload); |
| 162 | return ret; | 162 | return ret; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| @@ -279,7 +279,7 @@ SrsProtocol::~SrsProtocol() | @@ -279,7 +279,7 @@ SrsProtocol::~SrsProtocol() | ||
| 279 | SrsChunkStream* cs = cs_cache[i]; | 279 | SrsChunkStream* cs = cs_cache[i]; |
| 280 | srs_freep(cs); | 280 | srs_freep(cs); |
| 281 | } | 281 | } |
| 282 | - srs_freep(cs_cache); | 282 | + srs_freepa(cs_cache); |
| 283 | } | 283 | } |
| 284 | 284 | ||
| 285 | void SrsProtocol::set_auto_response(bool v) | 285 | void SrsProtocol::set_auto_response(bool v) |
| @@ -632,7 +632,7 @@ int SrsProtocol::do_send_and_free_packet(SrsPacket* packet, int stream_id) | @@ -632,7 +632,7 @@ int SrsProtocol::do_send_and_free_packet(SrsPacket* packet, int stream_id) | ||
| 632 | header.perfer_cid = packet->get_prefer_cid(); | 632 | header.perfer_cid = packet->get_prefer_cid(); |
| 633 | 633 | ||
| 634 | ret = do_simple_send(&header, payload, size); | 634 | ret = do_simple_send(&header, payload, size); |
| 635 | - srs_freep(payload); | 635 | + srs_freepa(payload); |
| 636 | if (ret == ERROR_SUCCESS) { | 636 | if (ret == ERROR_SUCCESS) { |
| 637 | ret = on_send_packet(&header, packet); | 637 | ret = on_send_packet(&header, packet); |
| 638 | } | 638 | } |
| @@ -1765,9 +1765,9 @@ SrsHandshakeBytes::SrsHandshakeBytes() | @@ -1765,9 +1765,9 @@ SrsHandshakeBytes::SrsHandshakeBytes() | ||
| 1765 | 1765 | ||
| 1766 | SrsHandshakeBytes::~SrsHandshakeBytes() | 1766 | SrsHandshakeBytes::~SrsHandshakeBytes() |
| 1767 | { | 1767 | { |
| 1768 | - srs_freep(c0c1); | ||
| 1769 | - srs_freep(s0s1s2); | ||
| 1770 | - srs_freep(c2); | 1768 | + srs_freepa(c0c1); |
| 1769 | + srs_freepa(s0s1s2); | ||
| 1770 | + srs_freepa(c2); | ||
| 1771 | } | 1771 | } |
| 1772 | 1772 | ||
| 1773 | int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io) | 1773 | int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io) |
| @@ -217,7 +217,7 @@ int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, in | @@ -217,7 +217,7 @@ int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, in | ||
| 217 | 217 | ||
| 218 | // only when failed, we must free the data. | 218 | // only when failed, we must free the data. |
| 219 | if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) { | 219 | if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) { |
| 220 | - srs_freep(data); | 220 | + srs_freepa(data); |
| 221 | return ret; | 221 | return ret; |
| 222 | } | 222 | } |
| 223 | 223 |
-
请 注册 或 登录 后发表评论