fix mem leak for delete[] SharedPtrMessage array, explicit free elems. remove srs_freepa. 0.9.95
正在显示
15 个修改的文件
包含
86 行增加
和
51 行删除
| @@ -50,7 +50,7 @@ void SrsCodecBuffer::append(void* data, int len) | @@ -50,7 +50,7 @@ void SrsCodecBuffer::append(void* data, int len) | ||
| 50 | void SrsCodecBuffer::free() | 50 | void SrsCodecBuffer::free() |
| 51 | { | 51 | { |
| 52 | size = 0; | 52 | size = 0; |
| 53 | - srs_freepa(bytes); | 53 | + srs_freep(bytes); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | SrsCodecSample::SrsCodecSample() | 56 | SrsCodecSample::SrsCodecSample() |
| @@ -125,12 +125,12 @@ SrsCodec::SrsCodec() | @@ -125,12 +125,12 @@ SrsCodec::SrsCodec() | ||
| 125 | 125 | ||
| 126 | SrsCodec::~SrsCodec() | 126 | SrsCodec::~SrsCodec() |
| 127 | { | 127 | { |
| 128 | - srs_freepa(avc_extra_data); | ||
| 129 | - srs_freepa(aac_extra_data); | 128 | + srs_freep(avc_extra_data); |
| 129 | + srs_freep(aac_extra_data); | ||
| 130 | 130 | ||
| 131 | srs_freep(stream); | 131 | srs_freep(stream); |
| 132 | - srs_freepa(sequenceParameterSetNALUnit); | ||
| 133 | - srs_freepa(pictureParameterSetNALUnit); | 132 | + srs_freep(sequenceParameterSetNALUnit); |
| 133 | + srs_freep(pictureParameterSetNALUnit); | ||
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | int SrsCodec::audio_aac_demux(int8_t* data, int size, SrsCodecSample* sample) | 136 | int SrsCodec::audio_aac_demux(int8_t* data, int size, SrsCodecSample* sample) |
| @@ -207,7 +207,7 @@ int SrsCodec::audio_aac_demux(int8_t* data, int size, SrsCodecSample* sample) | @@ -207,7 +207,7 @@ int SrsCodec::audio_aac_demux(int8_t* data, int size, SrsCodecSample* sample) | ||
| 207 | // 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33. | 207 | // 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33. |
| 208 | aac_extra_size = stream->left(); | 208 | aac_extra_size = stream->left(); |
| 209 | if (aac_extra_size > 0) { | 209 | if (aac_extra_size > 0) { |
| 210 | - srs_freepa(aac_extra_data); | 210 | + srs_freep(aac_extra_data); |
| 211 | aac_extra_data = new char[aac_extra_size]; | 211 | aac_extra_data = new char[aac_extra_size]; |
| 212 | memcpy(aac_extra_data, stream->current(), aac_extra_size); | 212 | memcpy(aac_extra_data, stream->current(), aac_extra_size); |
| 213 | } | 213 | } |
| @@ -321,7 +321,7 @@ int SrsCodec::video_avc_demux(int8_t* data, int size, SrsCodecSample* sample) | @@ -321,7 +321,7 @@ int SrsCodec::video_avc_demux(int8_t* data, int size, SrsCodecSample* sample) | ||
| 321 | // 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16 | 321 | // 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16 |
| 322 | avc_extra_size = stream->left(); | 322 | avc_extra_size = stream->left(); |
| 323 | if (avc_extra_size > 0) { | 323 | if (avc_extra_size > 0) { |
| 324 | - srs_freepa(avc_extra_data); | 324 | + srs_freep(avc_extra_data); |
| 325 | avc_extra_data = new char[avc_extra_size]; | 325 | avc_extra_data = new char[avc_extra_size]; |
| 326 | memcpy(avc_extra_data, stream->current(), avc_extra_size); | 326 | memcpy(avc_extra_data, stream->current(), avc_extra_size); |
| 327 | } | 327 | } |
| @@ -366,7 +366,7 @@ int SrsCodec::video_avc_demux(int8_t* data, int size, SrsCodecSample* sample) | @@ -366,7 +366,7 @@ int SrsCodec::video_avc_demux(int8_t* data, int size, SrsCodecSample* sample) | ||
| 366 | return ret; | 366 | return ret; |
| 367 | } | 367 | } |
| 368 | if (sequenceParameterSetLength > 0) { | 368 | if (sequenceParameterSetLength > 0) { |
| 369 | - srs_freepa(sequenceParameterSetNALUnit); | 369 | + srs_freep(sequenceParameterSetNALUnit); |
| 370 | sequenceParameterSetNALUnit = new char[sequenceParameterSetLength]; | 370 | sequenceParameterSetNALUnit = new char[sequenceParameterSetLength]; |
| 371 | memcpy(sequenceParameterSetNALUnit, stream->current(), sequenceParameterSetLength); | 371 | memcpy(sequenceParameterSetNALUnit, stream->current(), sequenceParameterSetLength); |
| 372 | stream->skip(sequenceParameterSetLength); | 372 | stream->skip(sequenceParameterSetLength); |
| @@ -396,7 +396,7 @@ int SrsCodec::video_avc_demux(int8_t* data, int size, SrsCodecSample* sample) | @@ -396,7 +396,7 @@ int SrsCodec::video_avc_demux(int8_t* data, int size, SrsCodecSample* sample) | ||
| 396 | return ret; | 396 | return ret; |
| 397 | } | 397 | } |
| 398 | if (pictureParameterSetLength > 0) { | 398 | if (pictureParameterSetLength > 0) { |
| 399 | - srs_freepa(pictureParameterSetNALUnit); | 399 | + srs_freep(pictureParameterSetNALUnit); |
| 400 | pictureParameterSetNALUnit = new char[pictureParameterSetLength]; | 400 | pictureParameterSetNALUnit = new char[pictureParameterSetLength]; |
| 401 | memcpy(pictureParameterSetNALUnit, stream->current(), pictureParameterSetLength); | 401 | memcpy(pictureParameterSetNALUnit, stream->current(), pictureParameterSetLength); |
| 402 | stream->skip(pictureParameterSetLength); | 402 | stream->skip(pictureParameterSetLength); |
| @@ -93,7 +93,7 @@ SrsFileBuffer::SrsFileBuffer() | @@ -93,7 +93,7 @@ SrsFileBuffer::SrsFileBuffer() | ||
| 93 | 93 | ||
| 94 | SrsFileBuffer::~SrsFileBuffer() | 94 | SrsFileBuffer::~SrsFileBuffer() |
| 95 | { | 95 | { |
| 96 | - srs_freepa(start); | 96 | + srs_freep(start); |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | int SrsFileBuffer::fullfill(const char* filename) | 99 | int SrsFileBuffer::fullfill(const char* filename) |
| @@ -117,7 +117,7 @@ int SrsFileBuffer::fullfill(const char* filename) | @@ -117,7 +117,7 @@ int SrsFileBuffer::fullfill(const char* filename) | ||
| 117 | goto finish; | 117 | goto finish; |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | - srs_freepa(start); | 120 | + srs_freep(start); |
| 121 | pos = last = start = new char[filesize]; | 121 | pos = last = start = new char[filesize]; |
| 122 | end = start + filesize; | 122 | end = start + filesize; |
| 123 | 123 | ||
| @@ -407,15 +407,15 @@ int SrsConfDirective::read_token(SrsFileBuffer* buffer, vector<string>& args) | @@ -407,15 +407,15 @@ int SrsConfDirective::read_token(SrsFileBuffer* buffer, vector<string>& args) | ||
| 407 | 407 | ||
| 408 | if (found) { | 408 | if (found) { |
| 409 | int len = buffer->pos - pstart; | 409 | int len = buffer->pos - pstart; |
| 410 | - char* word = new char[len]; | ||
| 411 | - memcpy(word, pstart, len); | ||
| 412 | - word[len - 1] = 0; | 410 | + char* aword = new char[len]; |
| 411 | + memcpy(aword, pstart, len); | ||
| 412 | + aword[len - 1] = 0; | ||
| 413 | 413 | ||
| 414 | - string word_str = word; | 414 | + string word_str = aword; |
| 415 | if (!word_str.empty()) { | 415 | if (!word_str.empty()) { |
| 416 | args.push_back(word_str); | 416 | args.push_back(word_str); |
| 417 | } | 417 | } |
| 418 | - srs_freepa(word); | 418 | + srs_freep(aword); |
| 419 | 419 | ||
| 420 | if (ch == ';') { | 420 | if (ch == ';') { |
| 421 | return ERROR_SYSTEM_CONFIG_DIRECTIVE; | 421 | return ERROR_SYSTEM_CONFIG_DIRECTIVE; |
| @@ -87,7 +87,7 @@ void SrsConnection::stop() | @@ -87,7 +87,7 @@ void SrsConnection::stop() | ||
| 87 | { | 87 | { |
| 88 | srs_close_stfd(stfd); | 88 | srs_close_stfd(stfd); |
| 89 | srs_freep(pthread); | 89 | srs_freep(pthread); |
| 90 | - srs_freepa(ip); | 90 | + srs_freep(ip); |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | int SrsConnection::get_peer_ip() | 93 | int SrsConnection::get_peer_ip() |
| @@ -474,19 +474,32 @@ int SrsEdgeForwarder::cycle() | @@ -474,19 +474,32 @@ int SrsEdgeForwarder::cycle() | ||
| 474 | srs_verbose("no packets to forward."); | 474 | srs_verbose("no packets to forward."); |
| 475 | continue; | 475 | continue; |
| 476 | } | 476 | } |
| 477 | - SrsAutoFree(SrsSharedPtrMessage*, msgs, true); | ||
| 478 | 477 | ||
| 479 | - // all msgs to forward. | 478 | + // all msgs to forward to origin. |
| 479 | + // @remark, becareful, all msgs must be free explicitly, | ||
| 480 | + // free by send_and_free_message or srs_freep. | ||
| 480 | for (int i = 0; i < count; i++) { | 481 | for (int i = 0; i < count; i++) { |
| 481 | SrsSharedPtrMessage* msg = msgs[i]; | 482 | SrsSharedPtrMessage* msg = msgs[i]; |
| 482 | 483 | ||
| 483 | srs_assert(msg); | 484 | srs_assert(msg); |
| 484 | msgs[i] = NULL; | 485 | msgs[i] = NULL; |
| 485 | 486 | ||
| 487 | + // never use free msgs array, for it will memory leak. | ||
| 488 | + // if error, directly free msgs. | ||
| 489 | + if (ret != ERROR_SUCCESS) { | ||
| 490 | + srs_freep(msg); | ||
| 491 | + continue; | ||
| 492 | + } | ||
| 493 | + | ||
| 486 | if ((ret = client->send_and_free_message(msg)) != ERROR_SUCCESS) { | 494 | if ((ret = client->send_and_free_message(msg)) != ERROR_SUCCESS) { |
| 487 | srs_error("edge publish forwarder send message to server failed. ret=%d", ret); | 495 | srs_error("edge publish forwarder send message to server failed. ret=%d", ret); |
| 488 | - return ret; | 496 | + break; |
| 497 | + } | ||
| 489 | } | 498 | } |
| 499 | + // free the array itself. | ||
| 500 | + srs_freep(msgs); | ||
| 501 | + if (ret != ERROR_SUCCESS) { | ||
| 502 | + return ret; | ||
| 490 | } | 503 | } |
| 491 | } | 504 | } |
| 492 | 505 |
| @@ -360,7 +360,7 @@ int SrsFFMPEG::start() | @@ -360,7 +360,7 @@ int SrsFFMPEG::start() | ||
| 360 | } | 360 | } |
| 361 | srs_trace("start transcoder, log: %s, params: %s", | 361 | srs_trace("start transcoder, log: %s, params: %s", |
| 362 | log_file.c_str(), pparam); | 362 | log_file.c_str(), pparam); |
| 363 | - srs_freepa(pparam); | 363 | + srs_freep(pparam); |
| 364 | } | 364 | } |
| 365 | 365 | ||
| 366 | // TODO: fork or vfork? | 366 | // TODO: fork or vfork? |
| @@ -352,19 +352,32 @@ int SrsForwarder::forward() | @@ -352,19 +352,32 @@ int SrsForwarder::forward() | ||
| 352 | srs_verbose("no packets to forward."); | 352 | srs_verbose("no packets to forward."); |
| 353 | continue; | 353 | continue; |
| 354 | } | 354 | } |
| 355 | - SrsAutoFree(SrsSharedPtrMessage*, msgs, true); | ||
| 356 | 355 | ||
| 357 | // all msgs to forward. | 356 | // all msgs to forward. |
| 357 | + // @remark, becareful, all msgs must be free explicitly, | ||
| 358 | + // free by send_and_free_message or srs_freep. | ||
| 358 | for (int i = 0; i < count; i++) { | 359 | for (int i = 0; i < count; i++) { |
| 359 | SrsSharedPtrMessage* msg = msgs[i]; | 360 | SrsSharedPtrMessage* msg = msgs[i]; |
| 360 | 361 | ||
| 361 | srs_assert(msg); | 362 | srs_assert(msg); |
| 362 | msgs[i] = NULL; | 363 | msgs[i] = NULL; |
| 363 | 364 | ||
| 365 | + // never use free msgs array, for it will memory leak. | ||
| 366 | + // if error, directly free msgs. | ||
| 367 | + if (ret != ERROR_SUCCESS) { | ||
| 368 | + srs_freep(msg); | ||
| 369 | + continue; | ||
| 370 | + } | ||
| 371 | + | ||
| 364 | if ((ret = client->send_and_free_message(msg)) != ERROR_SUCCESS) { | 372 | if ((ret = client->send_and_free_message(msg)) != ERROR_SUCCESS) { |
| 365 | srs_error("forwarder send message to server failed. ret=%d", ret); | 373 | srs_error("forwarder send message to server failed. ret=%d", ret); |
| 366 | - return ret; | 374 | + break; |
| 375 | + } | ||
| 367 | } | 376 | } |
| 377 | + // free the array itself. | ||
| 378 | + srs_freep(msgs); | ||
| 379 | + if (ret != ERROR_SUCCESS) { | ||
| 380 | + return ret; | ||
| 368 | } | 381 | } |
| 369 | } | 382 | } |
| 370 | 383 |
| @@ -523,7 +523,7 @@ SrsHttpMessage::~SrsHttpMessage() | @@ -523,7 +523,7 @@ SrsHttpMessage::~SrsHttpMessage() | ||
| 523 | srs_freep(_body); | 523 | srs_freep(_body); |
| 524 | srs_freep(_uri); | 524 | srs_freep(_uri); |
| 525 | srs_freep(_match); | 525 | srs_freep(_match); |
| 526 | - srs_freepa(_http_ts_send_buffer); | 526 | + srs_freep(_http_ts_send_buffer); |
| 527 | } | 527 | } |
| 528 | 528 | ||
| 529 | char* SrsHttpMessage::http_ts_send_buffer() | 529 | char* SrsHttpMessage::http_ts_send_buffer() |
| @@ -513,9 +513,10 @@ int SrsRtmpConn::playing(SrsSource* source) | @@ -513,9 +513,10 @@ int SrsRtmpConn::playing(SrsSource* source) | ||
| 513 | srs_verbose("no packets in queue."); | 513 | srs_verbose("no packets in queue."); |
| 514 | continue; | 514 | continue; |
| 515 | } | 515 | } |
| 516 | - SrsAutoFree(SrsSharedPtrMessage*, msgs, true); | ||
| 517 | 516 | ||
| 518 | // sendout messages | 517 | // sendout messages |
| 518 | + // @remark, becareful, all msgs must be free explicitly, | ||
| 519 | + // free by send_and_free_message or srs_freep. | ||
| 519 | for (int i = 0; i < count; i++) { | 520 | for (int i = 0; i < count; i++) { |
| 520 | SrsSharedPtrMessage* msg = msgs[i]; | 521 | SrsSharedPtrMessage* msg = msgs[i]; |
| 521 | 522 | ||
| @@ -525,6 +526,13 @@ int SrsRtmpConn::playing(SrsSource* source) | @@ -525,6 +526,13 @@ int SrsRtmpConn::playing(SrsSource* source) | ||
| 525 | 526 | ||
| 526 | srs_assert(msg); | 527 | srs_assert(msg); |
| 527 | 528 | ||
| 529 | + // never use free msgs array, for it will memory leak. | ||
| 530 | + // if error, directly free msgs. | ||
| 531 | + if (ret != ERROR_SUCCESS) { | ||
| 532 | + srs_freep(msg); | ||
| 533 | + continue; | ||
| 534 | + } | ||
| 535 | + | ||
| 528 | // foreach msg, collect the duration. | 536 | // foreach msg, collect the duration. |
| 529 | // @remark: never use msg when sent it, for the protocol sdk will free it. | 537 | // @remark: never use msg when sent it, for the protocol sdk will free it. |
| 530 | if (starttime < 0 || starttime > msg->header.timestamp) { | 538 | if (starttime < 0 || starttime > msg->header.timestamp) { |
| @@ -535,8 +543,13 @@ int SrsRtmpConn::playing(SrsSource* source) | @@ -535,8 +543,13 @@ int SrsRtmpConn::playing(SrsSource* source) | ||
| 535 | 543 | ||
| 536 | if ((ret = rtmp->send_and_free_message(msg)) != ERROR_SUCCESS) { | 544 | if ((ret = rtmp->send_and_free_message(msg)) != ERROR_SUCCESS) { |
| 537 | srs_error("send message to client failed. ret=%d", ret); | 545 | srs_error("send message to client failed. ret=%d", ret); |
| 538 | - return ret; | 546 | + break; |
| 547 | + } | ||
| 539 | } | 548 | } |
| 549 | + // free the array itself. | ||
| 550 | + srs_freep(msgs); | ||
| 551 | + if (ret != ERROR_SUCCESS) { | ||
| 552 | + return ret; | ||
| 540 | } | 553 | } |
| 541 | 554 | ||
| 542 | // if duration specified, and exceed it, stop play live. | 555 | // if duration specified, and exceed it, stop play live. |
| @@ -844,7 +844,7 @@ int SrsSource::on_meta_data(SrsMessage* msg, SrsOnMetaDataPacket* metadata) | @@ -844,7 +844,7 @@ int SrsSource::on_meta_data(SrsMessage* msg, SrsOnMetaDataPacket* metadata) | ||
| 844 | char* payload = NULL; | 844 | char* payload = NULL; |
| 845 | if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { | 845 | if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { |
| 846 | srs_error("encode metadata error. ret=%d", ret); | 846 | srs_error("encode metadata error. ret=%d", ret); |
| 847 | - srs_freepa(payload); | 847 | + srs_freep(payload); |
| 848 | return ret; | 848 | return ret; |
| 849 | } | 849 | } |
| 850 | srs_verbose("encode metadata success."); | 850 | srs_verbose("encode metadata success."); |
trunk/src/core/srs_core.hpp
100755 → 100644
| @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "94" | 34 | +#define VERSION_REVISION "95" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "srs" | 37 | #define RTMP_SIG_SRS_KEY "srs" |
| @@ -81,13 +81,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -81,13 +81,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 81 | p = NULL; \ | 81 | p = NULL; \ |
| 82 | } \ | 82 | } \ |
| 83 | (void)0 | 83 | (void)0 |
| 84 | -// free the p which represents a array | ||
| 85 | -#define srs_freepa(p) \ | ||
| 86 | - if (p) { \ | ||
| 87 | - delete[] p; \ | ||
| 88 | - p = NULL; \ | ||
| 89 | - } \ | ||
| 90 | - (void)0 | 84 | +// sometimes, the freepa is useless, |
| 85 | +// it's recomments to free each elem explicit. | ||
| 86 | +// so we remove the srs_freepa utility. | ||
| 91 | 87 | ||
| 92 | // compare | 88 | // compare |
| 93 | #define srs_min(a, b) (((a) < (b))? (a) : (b)) | 89 | #define srs_min(a, b) (((a) < (b))? (a) : (b)) |
| @@ -340,7 +340,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | @@ -340,7 +340,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | ||
| 340 | 340 | ||
| 341 | msg = new SrsSharedPtrMessage(); | 341 | msg = new SrsSharedPtrMessage(); |
| 342 | if ((ret = msg->initialize(&header, data, size)) != ERROR_SUCCESS) { | 342 | if ((ret = msg->initialize(&header, data, size)) != ERROR_SUCCESS) { |
| 343 | - srs_freepa(data); | 343 | + srs_freep(data); |
| 344 | return ret; | 344 | return ret; |
| 345 | } | 345 | } |
| 346 | } else if (type == SRS_RTMP_TYPE_VIDEO) { | 346 | } else if (type == SRS_RTMP_TYPE_VIDEO) { |
| @@ -349,7 +349,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | @@ -349,7 +349,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | ||
| 349 | 349 | ||
| 350 | msg = new SrsSharedPtrMessage(); | 350 | msg = new SrsSharedPtrMessage(); |
| 351 | if ((ret = msg->initialize(&header, data, size)) != ERROR_SUCCESS) { | 351 | if ((ret = msg->initialize(&header, data, size)) != ERROR_SUCCESS) { |
| 352 | - srs_freepa(data); | 352 | + srs_freep(data); |
| 353 | return ret; | 353 | return ret; |
| 354 | } | 354 | } |
| 355 | } else if (type == SRS_RTMP_TYPE_SCRIPT) { | 355 | } else if (type == SRS_RTMP_TYPE_SCRIPT) { |
| @@ -358,7 +358,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | @@ -358,7 +358,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | ||
| 358 | 358 | ||
| 359 | msg = new SrsSharedPtrMessage(); | 359 | msg = new SrsSharedPtrMessage(); |
| 360 | if ((ret = msg->initialize(&header, data, size)) != ERROR_SUCCESS) { | 360 | if ((ret = msg->initialize(&header, data, size)) != ERROR_SUCCESS) { |
| 361 | - srs_freepa(data); | 361 | + srs_freep(data); |
| 362 | return ret; | 362 | return ret; |
| 363 | } | 363 | } |
| 364 | } | 364 | } |
| @@ -370,7 +370,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | @@ -370,7 +370,7 @@ int srs_write_packet(srs_rtmp_t rtmp, int type, u_int32_t timestamp, char* data, | ||
| 370 | } | 370 | } |
| 371 | } else { | 371 | } else { |
| 372 | // directly free data if not sent out. | 372 | // directly free data if not sent out. |
| 373 | - srs_freepa(data); | 373 | + srs_freep(data); |
| 374 | } | 374 | } |
| 375 | 375 | ||
| 376 | return ret; | 376 | return ret; |
| @@ -336,10 +336,10 @@ namespace srs | @@ -336,10 +336,10 @@ namespace srs | ||
| 336 | void srs_key_block_free(key_block* key) | 336 | void srs_key_block_free(key_block* key) |
| 337 | { | 337 | { |
| 338 | if (key->random0) { | 338 | if (key->random0) { |
| 339 | - srs_freepa(key->random0); | 339 | + srs_freep(key->random0); |
| 340 | } | 340 | } |
| 341 | if (key->random1) { | 341 | if (key->random1) { |
| 342 | - srs_freepa(key->random1); | 342 | + srs_freep(key->random1); |
| 343 | } | 343 | } |
| 344 | } | 344 | } |
| 345 | 345 | ||
| @@ -427,10 +427,10 @@ namespace srs | @@ -427,10 +427,10 @@ namespace srs | ||
| 427 | void srs_digest_block_free(digest_block* digest) | 427 | void srs_digest_block_free(digest_block* digest) |
| 428 | { | 428 | { |
| 429 | if (digest->random0) { | 429 | if (digest->random0) { |
| 430 | - srs_freepa(digest->random0); | 430 | + srs_freep(digest->random0); |
| 431 | } | 431 | } |
| 432 | if (digest->random1) { | 432 | if (digest->random1) { |
| 433 | - srs_freepa(digest->random1); | 433 | + srs_freep(digest->random1); |
| 434 | } | 434 | } |
| 435 | } | 435 | } |
| 436 | 436 |
| @@ -192,9 +192,9 @@ SrsHandshakeBytes::SrsHandshakeBytes() | @@ -192,9 +192,9 @@ SrsHandshakeBytes::SrsHandshakeBytes() | ||
| 192 | 192 | ||
| 193 | SrsHandshakeBytes::~SrsHandshakeBytes() | 193 | SrsHandshakeBytes::~SrsHandshakeBytes() |
| 194 | { | 194 | { |
| 195 | - srs_freepa(c0c1); | ||
| 196 | - srs_freepa(s0s1s2); | ||
| 197 | - srs_freepa(c2); | 195 | + srs_freep(c0c1); |
| 196 | + srs_freep(s0s1s2); | ||
| 197 | + srs_freep(c2); | ||
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io) | 200 | int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io) |
| @@ -1538,7 +1538,7 @@ SrsCommonMessage::SrsCommonMessage() | @@ -1538,7 +1538,7 @@ SrsCommonMessage::SrsCommonMessage() | ||
| 1538 | 1538 | ||
| 1539 | SrsCommonMessage::~SrsCommonMessage() | 1539 | SrsCommonMessage::~SrsCommonMessage() |
| 1540 | { | 1540 | { |
| 1541 | - srs_freepa(payload); | 1541 | + srs_freep(payload); |
| 1542 | } | 1542 | } |
| 1543 | 1543 | ||
| 1544 | SrsSharedPtrMessage::__SrsSharedPtr::__SrsSharedPtr() | 1544 | SrsSharedPtrMessage::__SrsSharedPtr::__SrsSharedPtr() |
| @@ -1550,7 +1550,7 @@ SrsSharedPtrMessage::__SrsSharedPtr::__SrsSharedPtr() | @@ -1550,7 +1550,7 @@ SrsSharedPtrMessage::__SrsSharedPtr::__SrsSharedPtr() | ||
| 1550 | 1550 | ||
| 1551 | SrsSharedPtrMessage::__SrsSharedPtr::~__SrsSharedPtr() | 1551 | SrsSharedPtrMessage::__SrsSharedPtr::~__SrsSharedPtr() |
| 1552 | { | 1552 | { |
| 1553 | - srs_freepa(payload); | 1553 | + srs_freep(payload); |
| 1554 | } | 1554 | } |
| 1555 | 1555 | ||
| 1556 | SrsSharedPtrMessage::SrsSharedPtrMessage() | 1556 | SrsSharedPtrMessage::SrsSharedPtrMessage() |
| @@ -1678,14 +1678,14 @@ int SrsPacket::encode(int& psize, char*& ppayload) | @@ -1678,14 +1678,14 @@ int SrsPacket::encode(int& psize, char*& ppayload) | ||
| 1678 | 1678 | ||
| 1679 | if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) { | 1679 | if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) { |
| 1680 | srs_error("initialize the stream failed. ret=%d", ret); | 1680 | srs_error("initialize the stream failed. ret=%d", ret); |
| 1681 | - srs_freepa(payload); | 1681 | + srs_freep(payload); |
| 1682 | return ret; | 1682 | return ret; |
| 1683 | } | 1683 | } |
| 1684 | } | 1684 | } |
| 1685 | 1685 | ||
| 1686 | if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) { | 1686 | if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) { |
| 1687 | srs_error("encode the packet failed. ret=%d", ret); | 1687 | srs_error("encode the packet failed. ret=%d", ret); |
| 1688 | - srs_freepa(payload); | 1688 | + srs_freep(payload); |
| 1689 | return ret; | 1689 | return ret; |
| 1690 | } | 1690 | } |
| 1691 | 1691 |
-
请 注册 或 登录 后发表评论