正在显示
17 个修改的文件
包含
160 行增加
和
155 行删除
| @@ -203,8 +203,8 @@ int SrsBandwidth::do_bandwidth_check() | @@ -203,8 +203,8 @@ int SrsBandwidth::do_bandwidth_check() | ||
| 203 | srs_info("expect final message failed. ret=%d", ret); | 203 | srs_info("expect final message failed. ret=%d", ret); |
| 204 | return ERROR_SUCCESS; | 204 | return ERROR_SUCCESS; |
| 205 | } | 205 | } |
| 206 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 207 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 206 | + SrsAutoFree(SrsMessage, msg); |
| 207 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 208 | srs_info("get final message success."); | 208 | srs_info("get final message success."); |
| 209 | 209 | ||
| 210 | if (pkt->is_flash_final()) { | 210 | if (pkt->is_flash_final()) { |
| @@ -248,8 +248,8 @@ int SrsBandwidth::check_play( | @@ -248,8 +248,8 @@ int SrsBandwidth::check_play( | ||
| 248 | srs_error("expect bandwidth message failed. ret=%d", ret); | 248 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 249 | return ret; | 249 | return ret; |
| 250 | } | 250 | } |
| 251 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 252 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 251 | + SrsAutoFree(SrsMessage, msg); |
| 252 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 253 | srs_info("get bandwidth message succes."); | 253 | srs_info("get bandwidth message succes."); |
| 254 | 254 | ||
| 255 | if (pkt->is_starting_play()) { | 255 | if (pkt->is_starting_play()) { |
| @@ -329,8 +329,8 @@ int SrsBandwidth::check_play( | @@ -329,8 +329,8 @@ int SrsBandwidth::check_play( | ||
| 329 | srs_error("expect bandwidth message failed. ret=%d", ret); | 329 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 330 | return ret; | 330 | return ret; |
| 331 | } | 331 | } |
| 332 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 333 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 332 | + SrsAutoFree(SrsMessage, msg); |
| 333 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 334 | srs_info("get bandwidth message succes."); | 334 | srs_info("get bandwidth message succes."); |
| 335 | 335 | ||
| 336 | if (pkt->is_stopped_play()) { | 336 | if (pkt->is_stopped_play()) { |
| @@ -372,8 +372,8 @@ int SrsBandwidth::check_publish( | @@ -372,8 +372,8 @@ int SrsBandwidth::check_publish( | ||
| 372 | srs_error("expect bandwidth message failed. ret=%d", ret); | 372 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 373 | return ret; | 373 | return ret; |
| 374 | } | 374 | } |
| 375 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 376 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 375 | + SrsAutoFree(SrsMessage, msg); |
| 376 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 377 | srs_info("get bandwidth message succes."); | 377 | srs_info("get bandwidth message succes."); |
| 378 | 378 | ||
| 379 | if (pkt->is_starting_publish()) { | 379 | if (pkt->is_starting_publish()) { |
| @@ -392,7 +392,7 @@ int SrsBandwidth::check_publish( | @@ -392,7 +392,7 @@ int SrsBandwidth::check_publish( | ||
| 392 | srs_error("recv message failed. ret=%d", ret); | 392 | srs_error("recv message failed. ret=%d", ret); |
| 393 | return ret; | 393 | return ret; |
| 394 | } | 394 | } |
| 395 | - SrsAutoFree(SrsMessage, msg, false); | 395 | + SrsAutoFree(SrsMessage, msg); |
| 396 | 396 | ||
| 397 | publish_bytes = rtmp->get_recv_bytes(); | 397 | publish_bytes = rtmp->get_recv_bytes(); |
| 398 | 398 | ||
| @@ -440,8 +440,8 @@ int SrsBandwidth::check_publish( | @@ -440,8 +440,8 @@ int SrsBandwidth::check_publish( | ||
| 440 | srs_error("expect bandwidth message failed. ret=%d", ret); | 440 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 441 | return ret; | 441 | return ret; |
| 442 | } | 442 | } |
| 443 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 444 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 443 | + SrsAutoFree(SrsMessage, msg); |
| 444 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 445 | srs_info("get bandwidth message succes."); | 445 | srs_info("get bandwidth message succes."); |
| 446 | 446 | ||
| 447 | if (pkt->is_stopped_publish()) { | 447 | if (pkt->is_stopped_publish()) { |
| @@ -488,7 +488,7 @@ int SrsConfig::reload() | @@ -488,7 +488,7 @@ int SrsConfig::reload() | ||
| 488 | srs_info("config reloader parse file success."); | 488 | srs_info("config reloader parse file success."); |
| 489 | 489 | ||
| 490 | SrsConfDirective* old_root = root; | 490 | SrsConfDirective* old_root = root; |
| 491 | - SrsAutoFree(SrsConfDirective, old_root, false); | 491 | + SrsAutoFree(SrsConfDirective, old_root); |
| 492 | 492 | ||
| 493 | root = conf.root; | 493 | root = conf.root; |
| 494 | conf.root = NULL; | 494 | conf.root = NULL; |
| @@ -446,7 +446,7 @@ int SrsDvrPlan::on_meta_data(SrsOnMetaDataPacket* metadata) | @@ -446,7 +446,7 @@ int SrsDvrPlan::on_meta_data(SrsOnMetaDataPacket* metadata) | ||
| 446 | if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { | 446 | if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { |
| 447 | return ret; | 447 | return ret; |
| 448 | } | 448 | } |
| 449 | - SrsAutoFree(char, payload, true); | 449 | + SrsAutoFree(char, payload); |
| 450 | 450 | ||
| 451 | if ((ret = enc->write_metadata(payload, size)) != ERROR_SUCCESS) { | 451 | if ((ret = enc->write_metadata(payload, size)) != ERROR_SUCCESS) { |
| 452 | return ret; | 452 | return ret; |
| @@ -835,7 +835,7 @@ int SrsDvrHssPlan::on_meta_data(SrsOnMetaDataPacket* metadata) | @@ -835,7 +835,7 @@ int SrsDvrHssPlan::on_meta_data(SrsOnMetaDataPacket* metadata) | ||
| 835 | if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { | 835 | if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { |
| 836 | return ret; | 836 | return ret; |
| 837 | } | 837 | } |
| 838 | - SrsAutoFree(char, payload, true); | 838 | + SrsAutoFree(char, payload); |
| 839 | 839 | ||
| 840 | if ((ret = enc.write_metadata(payload, size)) != ERROR_SUCCESS) { | 840 | if ((ret = enc.write_metadata(payload, size)) != ERROR_SUCCESS) { |
| 841 | return ret; | 841 | return ret; |
| @@ -1002,7 +1002,7 @@ int SrsDvr::on_audio(SrsSharedPtrMessage* audio) | @@ -1002,7 +1002,7 @@ int SrsDvr::on_audio(SrsSharedPtrMessage* audio) | ||
| 1002 | { | 1002 | { |
| 1003 | int ret = ERROR_SUCCESS; | 1003 | int ret = ERROR_SUCCESS; |
| 1004 | 1004 | ||
| 1005 | - SrsAutoFree(SrsSharedPtrMessage, audio, false); | 1005 | + SrsAutoFree(SrsSharedPtrMessage, audio); |
| 1006 | 1006 | ||
| 1007 | if ((ret = plan->on_audio(audio)) != ERROR_SUCCESS) { | 1007 | if ((ret = plan->on_audio(audio)) != ERROR_SUCCESS) { |
| 1008 | return ret; | 1008 | return ret; |
| @@ -1015,7 +1015,7 @@ int SrsDvr::on_video(SrsSharedPtrMessage* video) | @@ -1015,7 +1015,7 @@ int SrsDvr::on_video(SrsSharedPtrMessage* video) | ||
| 1015 | { | 1015 | { |
| 1016 | int ret = ERROR_SUCCESS; | 1016 | int ret = ERROR_SUCCESS; |
| 1017 | 1017 | ||
| 1018 | - SrsAutoFree(SrsSharedPtrMessage, video, false); | 1018 | + SrsAutoFree(SrsSharedPtrMessage, video); |
| 1019 | 1019 | ||
| 1020 | if ((ret = plan->on_video(video)) != ERROR_SUCCESS) { | 1020 | if ((ret = plan->on_video(video)) != ERROR_SUCCESS) { |
| 1021 | return ret; | 1021 | return ret; |
| @@ -186,7 +186,7 @@ int SrsEdgeIngester::ingest() | @@ -186,7 +186,7 @@ int SrsEdgeIngester::ingest() | ||
| 186 | srs_verbose("edge loop recv message. ret=%d", ret); | 186 | srs_verbose("edge loop recv message. ret=%d", ret); |
| 187 | 187 | ||
| 188 | srs_assert(msg); | 188 | srs_assert(msg); |
| 189 | - SrsAutoFree(SrsMessage, msg, false); | 189 | + SrsAutoFree(SrsMessage, msg); |
| 190 | 190 | ||
| 191 | if ((ret = process_publish_message(msg)) != ERROR_SUCCESS) { | 191 | if ((ret = process_publish_message(msg)) != ERROR_SUCCESS) { |
| 192 | return ret; | 192 | return ret; |
| @@ -234,7 +234,7 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg) | @@ -234,7 +234,7 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg) | ||
| 234 | srs_error("decode onMetaData message failed. ret=%d", ret); | 234 | srs_error("decode onMetaData message failed. ret=%d", ret); |
| 235 | return ret; | 235 | return ret; |
| 236 | } | 236 | } |
| 237 | - SrsAutoFree(SrsPacket, pkt, false); | 237 | + SrsAutoFree(SrsPacket, pkt); |
| 238 | 238 | ||
| 239 | if (dynamic_cast<SrsOnMetaDataPacket*>(pkt)) { | 239 | if (dynamic_cast<SrsOnMetaDataPacket*>(pkt)) { |
| 240 | SrsOnMetaDataPacket* metadata = dynamic_cast<SrsOnMetaDataPacket*>(pkt); | 240 | SrsOnMetaDataPacket* metadata = dynamic_cast<SrsOnMetaDataPacket*>(pkt); |
| @@ -527,7 +527,7 @@ int SrsEdgeForwarder::proxy(SrsMessage* msg) | @@ -527,7 +527,7 @@ int SrsEdgeForwarder::proxy(SrsMessage* msg) | ||
| 527 | 527 | ||
| 528 | // TODO: FIXME: use utility to copy msg to shared ptr msg. | 528 | // TODO: FIXME: use utility to copy msg to shared ptr msg. |
| 529 | SrsSharedPtrMessage* copy = new SrsSharedPtrMessage(); | 529 | SrsSharedPtrMessage* copy = new SrsSharedPtrMessage(); |
| 530 | - SrsAutoFree(SrsSharedPtrMessage, copy, false); | 530 | + SrsAutoFree(SrsSharedPtrMessage, copy); |
| 531 | if ((ret = copy->initialize(msg)) != ERROR_SUCCESS) { | 531 | if ((ret = copy->initialize(msg)) != ERROR_SUCCESS) { |
| 532 | srs_error("initialize the msg failed. ret=%d", ret); | 532 | srs_error("initialize the msg failed. ret=%d", ret); |
| 533 | return ret; | 533 | return ret; |
| @@ -1388,7 +1388,7 @@ int SrsHls::on_audio(SrsSharedPtrMessage* audio) | @@ -1388,7 +1388,7 @@ int SrsHls::on_audio(SrsSharedPtrMessage* audio) | ||
| 1388 | { | 1388 | { |
| 1389 | int ret = ERROR_SUCCESS; | 1389 | int ret = ERROR_SUCCESS; |
| 1390 | 1390 | ||
| 1391 | - SrsAutoFree(SrsSharedPtrMessage, audio, false); | 1391 | + SrsAutoFree(SrsSharedPtrMessage, audio); |
| 1392 | 1392 | ||
| 1393 | if (!hls_enabled) { | 1393 | if (!hls_enabled) { |
| 1394 | return ret; | 1394 | return ret; |
| @@ -1432,7 +1432,7 @@ int SrsHls::on_video(SrsSharedPtrMessage* video) | @@ -1432,7 +1432,7 @@ int SrsHls::on_video(SrsSharedPtrMessage* video) | ||
| 1432 | { | 1432 | { |
| 1433 | int ret = ERROR_SUCCESS; | 1433 | int ret = ERROR_SUCCESS; |
| 1434 | 1434 | ||
| 1435 | - SrsAutoFree(SrsSharedPtrMessage, video, false); | 1435 | + SrsAutoFree(SrsSharedPtrMessage, video); |
| 1436 | 1436 | ||
| 1437 | if (!hls_enabled) { | 1437 | if (!hls_enabled) { |
| 1438 | return ret; | 1438 | return ret; |
| @@ -532,7 +532,7 @@ int SrsHttpApi::do_cycle() | @@ -532,7 +532,7 @@ int SrsHttpApi::do_cycle() | ||
| 532 | srs_assert(req->is_complete()); | 532 | srs_assert(req->is_complete()); |
| 533 | 533 | ||
| 534 | // always free it in this scope. | 534 | // always free it in this scope. |
| 535 | - SrsAutoFree(SrsHttpMessage, req, false); | 535 | + SrsAutoFree(SrsHttpMessage, req); |
| 536 | 536 | ||
| 537 | // ok, handle http request. | 537 | // ok, handle http request. |
| 538 | if ((ret = process_request(&skt, req)) != ERROR_SUCCESS) { | 538 | if ((ret = process_request(&skt, req)) != ERROR_SUCCESS) { |
| @@ -228,7 +228,7 @@ int SrsHttpVhost::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | @@ -228,7 +228,7 @@ int SrsHttpVhost::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | ||
| 228 | ::lseek(fd, 0, SEEK_SET); | 228 | ::lseek(fd, 0, SEEK_SET); |
| 229 | 229 | ||
| 230 | char* buf = new char[length]; | 230 | char* buf = new char[length]; |
| 231 | - SrsAutoFree(char, buf, true); | 231 | + SrsAutoFree(char, buf); |
| 232 | 232 | ||
| 233 | // TODO: FIXME: use st_read. | 233 | // TODO: FIXME: use st_read. |
| 234 | if (::read(fd, buf, length) < 0) { | 234 | if (::read(fd, buf, length) < 0) { |
| @@ -352,7 +352,7 @@ int SrsHttpConn::do_cycle() | @@ -352,7 +352,7 @@ int SrsHttpConn::do_cycle() | ||
| 352 | srs_assert(req->is_complete()); | 352 | srs_assert(req->is_complete()); |
| 353 | 353 | ||
| 354 | // always free it in this scope. | 354 | // always free it in this scope. |
| 355 | - SrsAutoFree(SrsHttpMessage, req, false); | 355 | + SrsAutoFree(SrsHttpMessage, req); |
| 356 | 356 | ||
| 357 | // ok, handle http request. | 357 | // ok, handle http request. |
| 358 | if ((ret = process_request(&skt, req)) != ERROR_SUCCESS) { | 358 | if ((ret = process_request(&skt, req)) != ERROR_SUCCESS) { |
| @@ -460,7 +460,7 @@ int SrsRtmpConn::playing(SrsSource* source) | @@ -460,7 +460,7 @@ int SrsRtmpConn::playing(SrsSource* source) | ||
| 460 | } | 460 | } |
| 461 | 461 | ||
| 462 | srs_assert(consumer != NULL); | 462 | srs_assert(consumer != NULL); |
| 463 | - SrsAutoFree(SrsConsumer, consumer, false); | 463 | + SrsAutoFree(SrsConsumer, consumer); |
| 464 | srs_verbose("consumer created success."); | 464 | srs_verbose("consumer created success."); |
| 465 | 465 | ||
| 466 | rtmp->set_recv_timeout(SRS_PULSE_TIMEOUT_US); | 466 | rtmp->set_recv_timeout(SRS_PULSE_TIMEOUT_US); |
| @@ -595,7 +595,7 @@ int SrsRtmpConn::fmle_publish(SrsSource* source) | @@ -595,7 +595,7 @@ int SrsRtmpConn::fmle_publish(SrsSource* source) | ||
| 595 | return ret; | 595 | return ret; |
| 596 | } | 596 | } |
| 597 | 597 | ||
| 598 | - SrsAutoFree(SrsMessage, msg, false); | 598 | + SrsAutoFree(SrsMessage, msg); |
| 599 | 599 | ||
| 600 | pithy_print.elapse(); | 600 | pithy_print.elapse(); |
| 601 | 601 | ||
| @@ -614,7 +614,7 @@ int SrsRtmpConn::fmle_publish(SrsSource* source) | @@ -614,7 +614,7 @@ int SrsRtmpConn::fmle_publish(SrsSource* source) | ||
| 614 | return ret; | 614 | return ret; |
| 615 | } | 615 | } |
| 616 | 616 | ||
| 617 | - SrsAutoFree(SrsPacket, pkt, false); | 617 | + SrsAutoFree(SrsPacket, pkt); |
| 618 | 618 | ||
| 619 | if (dynamic_cast<SrsFMLEStartPacket*>(pkt)) { | 619 | if (dynamic_cast<SrsFMLEStartPacket*>(pkt)) { |
| 620 | SrsFMLEStartPacket* unpublish = dynamic_cast<SrsFMLEStartPacket*>(pkt); | 620 | SrsFMLEStartPacket* unpublish = dynamic_cast<SrsFMLEStartPacket*>(pkt); |
| @@ -671,7 +671,7 @@ int SrsRtmpConn::flash_publish(SrsSource* source) | @@ -671,7 +671,7 @@ int SrsRtmpConn::flash_publish(SrsSource* source) | ||
| 671 | return ret; | 671 | return ret; |
| 672 | } | 672 | } |
| 673 | 673 | ||
| 674 | - SrsAutoFree(SrsMessage, msg, false); | 674 | + SrsAutoFree(SrsMessage, msg); |
| 675 | 675 | ||
| 676 | pithy_print.elapse(); | 676 | pithy_print.elapse(); |
| 677 | 677 | ||
| @@ -690,7 +690,7 @@ int SrsRtmpConn::flash_publish(SrsSource* source) | @@ -690,7 +690,7 @@ int SrsRtmpConn::flash_publish(SrsSource* source) | ||
| 690 | return ret; | 690 | return ret; |
| 691 | } | 691 | } |
| 692 | 692 | ||
| 693 | - SrsAutoFree(SrsPacket, pkt, false); | 693 | + SrsAutoFree(SrsPacket, pkt); |
| 694 | 694 | ||
| 695 | // flash unpublish. | 695 | // flash unpublish. |
| 696 | // TODO: maybe need to support republish. | 696 | // TODO: maybe need to support republish. |
| @@ -754,7 +754,7 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo | @@ -754,7 +754,7 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo | ||
| 754 | srs_error("decode onMetaData message failed. ret=%d", ret); | 754 | srs_error("decode onMetaData message failed. ret=%d", ret); |
| 755 | return ret; | 755 | return ret; |
| 756 | } | 756 | } |
| 757 | - SrsAutoFree(SrsPacket, pkt, false); | 757 | + SrsAutoFree(SrsPacket, pkt); |
| 758 | 758 | ||
| 759 | if (dynamic_cast<SrsOnMetaDataPacket*>(pkt)) { | 759 | if (dynamic_cast<SrsOnMetaDataPacket*>(pkt)) { |
| 760 | SrsOnMetaDataPacket* metadata = dynamic_cast<SrsOnMetaDataPacket*>(pkt); | 760 | SrsOnMetaDataPacket* metadata = dynamic_cast<SrsOnMetaDataPacket*>(pkt); |
| @@ -781,7 +781,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg | @@ -781,7 +781,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg | ||
| 781 | srs_verbose("ignore all empty message."); | 781 | srs_verbose("ignore all empty message."); |
| 782 | return ret; | 782 | return ret; |
| 783 | } | 783 | } |
| 784 | - SrsAutoFree(SrsMessage, msg, false); | 784 | + SrsAutoFree(SrsMessage, msg); |
| 785 | 785 | ||
| 786 | if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { | 786 | if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { |
| 787 | srs_info("ignore all message except amf0/amf3 command."); | 787 | srs_info("ignore all message except amf0/amf3 command."); |
| @@ -795,7 +795,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg | @@ -795,7 +795,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg | ||
| 795 | } | 795 | } |
| 796 | srs_info("decode the amf0/amf3 command packet success."); | 796 | srs_info("decode the amf0/amf3 command packet success."); |
| 797 | 797 | ||
| 798 | - SrsAutoFree(SrsPacket, pkt, false); | 798 | + SrsAutoFree(SrsPacket, pkt); |
| 799 | 799 | ||
| 800 | // for jwplayer/flowplayer, which send close as pause message. | 800 | // for jwplayer/flowplayer, which send close as pause message. |
| 801 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/6 | 801 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/6 |
| @@ -898,7 +898,7 @@ int SrsSource::on_audio(SrsMessage* audio) | @@ -898,7 +898,7 @@ int SrsSource::on_audio(SrsMessage* audio) | ||
| 898 | int ret = ERROR_SUCCESS; | 898 | int ret = ERROR_SUCCESS; |
| 899 | 899 | ||
| 900 | SrsSharedPtrMessage* msg = new SrsSharedPtrMessage(); | 900 | SrsSharedPtrMessage* msg = new SrsSharedPtrMessage(); |
| 901 | - SrsAutoFree(SrsSharedPtrMessage, msg, false); | 901 | + SrsAutoFree(SrsSharedPtrMessage, msg); |
| 902 | if ((ret = msg->initialize(audio)) != ERROR_SUCCESS) { | 902 | if ((ret = msg->initialize(audio)) != ERROR_SUCCESS) { |
| 903 | srs_error("initialize the audio failed. ret=%d", ret); | 903 | srs_error("initialize the audio failed. ret=%d", ret); |
| 904 | return ret; | 904 | return ret; |
| @@ -988,7 +988,7 @@ int SrsSource::on_video(SrsMessage* video) | @@ -988,7 +988,7 @@ int SrsSource::on_video(SrsMessage* video) | ||
| 988 | int ret = ERROR_SUCCESS; | 988 | int ret = ERROR_SUCCESS; |
| 989 | 989 | ||
| 990 | SrsSharedPtrMessage* msg = new SrsSharedPtrMessage(); | 990 | SrsSharedPtrMessage* msg = new SrsSharedPtrMessage(); |
| 991 | - SrsAutoFree(SrsSharedPtrMessage, msg, false); | 991 | + SrsAutoFree(SrsSharedPtrMessage, msg); |
| 992 | if ((ret = msg->initialize(video)) != ERROR_SUCCESS) { | 992 | if ((ret = msg->initialize(video)) != ERROR_SUCCESS) { |
| 993 | srs_error("initialize the video failed. ret=%d", ret); | 993 | srs_error("initialize the video failed. ret=%d", ret); |
| 994 | return ret; | 994 | return ret; |
| @@ -33,23 +33,21 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -33,23 +33,21 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 33 | /** | 33 | /** |
| 34 | * auto free the instance in the current scope. | 34 | * auto free the instance in the current scope. |
| 35 | */ | 35 | */ |
| 36 | -#define SrsAutoFree(className, instance, is_array) \ | ||
| 37 | - __SrsAutoFree<className> _auto_free_##instance((className**)&instance, is_array) | 36 | +#define SrsAutoFree(className, instance) \ |
| 37 | + __SrsAutoFree<className> _auto_free_##instance((className**)&instance) | ||
| 38 | 38 | ||
| 39 | template<class T> | 39 | template<class T> |
| 40 | class __SrsAutoFree | 40 | class __SrsAutoFree |
| 41 | { | 41 | { |
| 42 | private: | 42 | private: |
| 43 | T** ptr; | 43 | T** ptr; |
| 44 | - bool is_array; | ||
| 45 | public: | 44 | public: |
| 46 | /** | 45 | /** |
| 47 | * auto delete the ptr. | 46 | * auto delete the ptr. |
| 48 | * @is_array a bool value indicates whether the ptr is a array. | 47 | * @is_array a bool value indicates whether the ptr is a array. |
| 49 | */ | 48 | */ |
| 50 | - __SrsAutoFree(T** _ptr, bool _is_array){ | 49 | + __SrsAutoFree(T** _ptr){ |
| 51 | ptr = _ptr; | 50 | ptr = _ptr; |
| 52 | - is_array = _is_array; | ||
| 53 | } | 51 | } |
| 54 | 52 | ||
| 55 | virtual ~__SrsAutoFree(){ | 53 | virtual ~__SrsAutoFree(){ |
| @@ -57,15 +55,22 @@ public: | @@ -57,15 +55,22 @@ public: | ||
| 57 | return; | 55 | return; |
| 58 | } | 56 | } |
| 59 | 57 | ||
| 60 | - if (is_array) { | ||
| 61 | - delete[] *ptr; | ||
| 62 | - } else { | ||
| 63 | - delete *ptr; | ||
| 64 | - } | 58 | + delete *ptr; |
| 65 | 59 | ||
| 66 | *ptr = NULL; | 60 | *ptr = NULL; |
| 67 | } | 61 | } |
| 68 | }; | 62 | }; |
| 69 | 63 | ||
| 64 | +/** | ||
| 65 | +* auto free the array ptrs, for example, MyClass* msgs[10], | ||
| 66 | +* which stores 10 MyClass* objects, this class will: | ||
| 67 | +* 1. free each MyClass* in array. | ||
| 68 | +* 2. free the msgs itself. | ||
| 69 | +* @remark, MyClass* msgs[] equals to MyClass**, the ptr array equals ptr to ptr. | ||
| 70 | +*/ | ||
| 71 | +template<class T> | ||
| 72 | +class SrsObjectPtrArrayAutoFree | ||
| 73 | +{ | ||
| 74 | +}; | ||
| 70 | 75 | ||
| 71 | #endif | 76 | #endif |
| @@ -291,7 +291,7 @@ int srs_read_packet(srs_rtmp_t rtmp, int* type, u_int32_t* timestamp, char** dat | @@ -291,7 +291,7 @@ int srs_read_packet(srs_rtmp_t rtmp, int* type, u_int32_t* timestamp, char** dat | ||
| 291 | continue; | 291 | continue; |
| 292 | } | 292 | } |
| 293 | 293 | ||
| 294 | - SrsAutoFree(SrsMessage, msg, false); | 294 | + SrsAutoFree(SrsMessage, msg); |
| 295 | 295 | ||
| 296 | if (msg->header.is_audio()) { | 296 | if (msg->header.is_audio()) { |
| 297 | *type = SRS_RTMP_TYPE_AUDIO; | 297 | *type = SRS_RTMP_TYPE_AUDIO; |
| @@ -348,8 +348,8 @@ int SrsBandCheckClient::expect_start_play() | @@ -348,8 +348,8 @@ int SrsBandCheckClient::expect_start_play() | ||
| 348 | srs_error("expect bandcheck start play message failed. ret=%d", ret); | 348 | srs_error("expect bandcheck start play message failed. ret=%d", ret); |
| 349 | return ret; | 349 | return ret; |
| 350 | } | 350 | } |
| 351 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 352 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 351 | + SrsAutoFree(SrsMessage, msg); |
| 352 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 353 | srs_info("get bandcheck start play message"); | 353 | srs_info("get bandcheck start play message"); |
| 354 | 354 | ||
| 355 | if (pkt->command_name != SRS_BW_CHECK_START_PLAY) { | 355 | if (pkt->command_name != SRS_BW_CHECK_START_PLAY) { |
| @@ -385,8 +385,8 @@ int SrsBandCheckClient::expect_stop_play() | @@ -385,8 +385,8 @@ int SrsBandCheckClient::expect_stop_play() | ||
| 385 | srs_error("expect stop play message failed. ret=%d", ret); | 385 | srs_error("expect stop play message failed. ret=%d", ret); |
| 386 | return ret; | 386 | return ret; |
| 387 | } | 387 | } |
| 388 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 389 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 388 | + SrsAutoFree(SrsMessage, msg); |
| 389 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 390 | srs_info("get bandcheck stop play message"); | 390 | srs_info("get bandcheck stop play message"); |
| 391 | 391 | ||
| 392 | if (pkt->command_name == SRS_BW_CHECK_STOP_PLAY) { | 392 | if (pkt->command_name == SRS_BW_CHECK_STOP_PLAY) { |
| @@ -422,8 +422,8 @@ int SrsBandCheckClient::expect_start_pub() | @@ -422,8 +422,8 @@ int SrsBandCheckClient::expect_start_pub() | ||
| 422 | srs_error("expect start pub message failed. ret=%d", ret); | 422 | srs_error("expect start pub message failed. ret=%d", ret); |
| 423 | return ret; | 423 | return ret; |
| 424 | } | 424 | } |
| 425 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 426 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 425 | + SrsAutoFree(SrsMessage, msg); |
| 426 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 427 | srs_info("get bandcheck start pub message"); | 427 | srs_info("get bandcheck start pub message"); |
| 428 | 428 | ||
| 429 | if (pkt->command_name == SRS_BW_CHECK_START_PUBLISH) { | 429 | if (pkt->command_name == SRS_BW_CHECK_START_PUBLISH) { |
| @@ -491,8 +491,8 @@ int SrsBandCheckClient::expect_stop_pub() | @@ -491,8 +491,8 @@ int SrsBandCheckClient::expect_stop_pub() | ||
| 491 | if ((ret = srs_rtmp_expect_message<SrsBandwidthPacket>(this->protocol, &msg, &pkt)) != ERROR_SUCCESS) { | 491 | if ((ret = srs_rtmp_expect_message<SrsBandwidthPacket>(this->protocol, &msg, &pkt)) != ERROR_SUCCESS) { |
| 492 | return ret; | 492 | return ret; |
| 493 | } | 493 | } |
| 494 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 495 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 494 | + SrsAutoFree(SrsMessage, msg); |
| 495 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 496 | if (pkt->command_name == SRS_BW_CHECK_STOP_PUBLISH) { | 496 | if (pkt->command_name == SRS_BW_CHECK_STOP_PUBLISH) { |
| 497 | return ret; | 497 | return ret; |
| 498 | } | 498 | } |
| @@ -511,13 +511,13 @@ int SrsBandCheckClient::expect_finished() | @@ -511,13 +511,13 @@ int SrsBandCheckClient::expect_finished() | ||
| 511 | srs_error("expect finished message failed. ret=%d", ret); | 511 | srs_error("expect finished message failed. ret=%d", ret); |
| 512 | return ret; | 512 | return ret; |
| 513 | } | 513 | } |
| 514 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 515 | - SrsAutoFree(SrsBandwidthPacket, pkt, false); | 514 | + SrsAutoFree(SrsMessage, msg); |
| 515 | + SrsAutoFree(SrsBandwidthPacket, pkt); | ||
| 516 | srs_info("get bandcheck finished message"); | 516 | srs_info("get bandcheck finished message"); |
| 517 | 517 | ||
| 518 | if (pkt->command_name == SRS_BW_CHECK_FINISHED) { | 518 | if (pkt->command_name == SRS_BW_CHECK_FINISHED) { |
| 519 | SrsStream *stream = new SrsStream; | 519 | SrsStream *stream = new SrsStream; |
| 520 | - SrsAutoFree(SrsStream, stream, false); | 520 | + SrsAutoFree(SrsStream, stream); |
| 521 | 521 | ||
| 522 | if ((ret = stream->initialize((char*)msg->payload, msg->size)) != ERROR_SUCCESS) { | 522 | if ((ret = stream->initialize((char*)msg->payload, msg->size)) != ERROR_SUCCESS) { |
| 523 | srs_error("initialize stream error. ret=%d", ret); | 523 | srs_error("initialize stream error. ret=%d", ret); |
| @@ -813,7 +813,7 @@ namespace srs | @@ -813,7 +813,7 @@ namespace srs | ||
| 813 | } | 813 | } |
| 814 | 814 | ||
| 815 | srs_assert(digest != NULL); | 815 | srs_assert(digest != NULL); |
| 816 | - SrsAutoFree(char, digest, true); | 816 | + SrsAutoFree(char, digest); |
| 817 | 817 | ||
| 818 | if (schema == srs_schema0) { | 818 | if (schema == srs_schema0) { |
| 819 | memcpy(block1.digest.digest, digest, 32); | 819 | memcpy(block1.digest.digest, digest, 32); |
| @@ -837,7 +837,7 @@ namespace srs | @@ -837,7 +837,7 @@ namespace srs | ||
| 837 | } | 837 | } |
| 838 | 838 | ||
| 839 | srs_assert(c1_digest != NULL); | 839 | srs_assert(c1_digest != NULL); |
| 840 | - SrsAutoFree(char, c1_digest, true); | 840 | + SrsAutoFree(char, c1_digest); |
| 841 | 841 | ||
| 842 | if (schema == srs_schema0) { | 842 | if (schema == srs_schema0) { |
| 843 | is_valid = srs_bytes_equals(block1.digest.digest, c1_digest, 32); | 843 | is_valid = srs_bytes_equals(block1.digest.digest, c1_digest, 32); |
| @@ -861,7 +861,7 @@ namespace srs | @@ -861,7 +861,7 @@ namespace srs | ||
| 861 | } | 861 | } |
| 862 | 862 | ||
| 863 | srs_assert(s1_digest != NULL); | 863 | srs_assert(s1_digest != NULL); |
| 864 | - SrsAutoFree(char, s1_digest, true); | 864 | + SrsAutoFree(char, s1_digest); |
| 865 | 865 | ||
| 866 | if (schema == srs_schema0) { | 866 | if (schema == srs_schema0) { |
| 867 | is_valid = srs_bytes_equals(block1.digest.digest, s1_digest, 32); | 867 | is_valid = srs_bytes_equals(block1.digest.digest, s1_digest, 32); |
| @@ -917,7 +917,7 @@ namespace srs | @@ -917,7 +917,7 @@ namespace srs | ||
| 917 | srs_verbose("calc s1 digest success."); | 917 | srs_verbose("calc s1 digest success."); |
| 918 | 918 | ||
| 919 | srs_assert(s1_digest != NULL); | 919 | srs_assert(s1_digest != NULL); |
| 920 | - SrsAutoFree(char, s1_digest, true); | 920 | + SrsAutoFree(char, s1_digest); |
| 921 | 921 | ||
| 922 | if (schema == srs_schema0) { | 922 | if (schema == srs_schema0) { |
| 923 | memcpy(block1.digest.digest, s1_digest, 32); | 923 | memcpy(block1.digest.digest, s1_digest, 32); |
| @@ -944,7 +944,7 @@ namespace srs | @@ -944,7 +944,7 @@ namespace srs | ||
| 944 | } | 944 | } |
| 945 | 945 | ||
| 946 | srs_assert(c1s1_joined_bytes != NULL); | 946 | srs_assert(c1s1_joined_bytes != NULL); |
| 947 | - SrsAutoFree(char, c1s1_joined_bytes, true); | 947 | + SrsAutoFree(char, c1s1_joined_bytes); |
| 948 | 948 | ||
| 949 | digest = new char[OpensslHashSize]; | 949 | digest = new char[OpensslHashSize]; |
| 950 | if ((ret = openssl_HMACsha256(c1s1_joined_bytes, 1536 - 32, SrsGenuineFMSKey, 36, digest)) != ERROR_SUCCESS) { | 950 | if ((ret = openssl_HMACsha256(c1s1_joined_bytes, 1536 - 32, SrsGenuineFMSKey, 36, digest)) != ERROR_SUCCESS) { |
| @@ -971,7 +971,7 @@ namespace srs | @@ -971,7 +971,7 @@ namespace srs | ||
| 971 | } | 971 | } |
| 972 | 972 | ||
| 973 | srs_assert(c1s1_joined_bytes != NULL); | 973 | srs_assert(c1s1_joined_bytes != NULL); |
| 974 | - SrsAutoFree(char, c1s1_joined_bytes, true); | 974 | + SrsAutoFree(char, c1s1_joined_bytes); |
| 975 | 975 | ||
| 976 | digest = new char[OpensslHashSize]; | 976 | digest = new char[OpensslHashSize]; |
| 977 | if ((ret = openssl_HMACsha256(c1s1_joined_bytes, 1536 - 32, SrsGenuineFPKey, 30, digest)) != ERROR_SUCCESS) { | 977 | if ((ret = openssl_HMACsha256(c1s1_joined_bytes, 1536 - 32, SrsGenuineFPKey, 30, digest)) != ERROR_SUCCESS) { |
| @@ -490,8 +490,8 @@ int SrsRtmpClient::connect_app(string app, string tc_url) | @@ -490,8 +490,8 @@ int SrsRtmpClient::connect_app(string app, string tc_url) | ||
| 490 | srs_error("expect connect app response message failed. ret=%d", ret); | 490 | srs_error("expect connect app response message failed. ret=%d", ret); |
| 491 | return ret; | 491 | return ret; |
| 492 | } | 492 | } |
| 493 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 494 | - SrsAutoFree(SrsConnectAppResPacket, pkt, false); | 493 | + SrsAutoFree(SrsMessage, msg); |
| 494 | + SrsAutoFree(SrsConnectAppResPacket, pkt); | ||
| 495 | srs_info("get connect app response message"); | 495 | srs_info("get connect app response message"); |
| 496 | 496 | ||
| 497 | return ret; | 497 | return ret; |
| @@ -517,8 +517,8 @@ int SrsRtmpClient::create_stream(int& stream_id) | @@ -517,8 +517,8 @@ int SrsRtmpClient::create_stream(int& stream_id) | ||
| 517 | srs_error("expect create stream response message failed. ret=%d", ret); | 517 | srs_error("expect create stream response message failed. ret=%d", ret); |
| 518 | return ret; | 518 | return ret; |
| 519 | } | 519 | } |
| 520 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 521 | - SrsAutoFree(SrsCreateStreamResPacket, pkt, false); | 520 | + SrsAutoFree(SrsMessage, msg); |
| 521 | + SrsAutoFree(SrsCreateStreamResPacket, pkt); | ||
| 522 | srs_info("get create stream response message"); | 522 | srs_info("get create stream response message"); |
| 523 | 523 | ||
| 524 | stream_id = (int)pkt->stream_id; | 524 | stream_id = (int)pkt->stream_id; |
| @@ -651,8 +651,8 @@ int SrsRtmpClient::fmle_publish(string stream, int& stream_id) | @@ -651,8 +651,8 @@ int SrsRtmpClient::fmle_publish(string stream, int& stream_id) | ||
| 651 | srs_error("expect create stream response message failed. ret=%d", ret); | 651 | srs_error("expect create stream response message failed. ret=%d", ret); |
| 652 | return ret; | 652 | return ret; |
| 653 | } | 653 | } |
| 654 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 655 | - SrsAutoFree(SrsCreateStreamResPacket, pkt, false); | 654 | + SrsAutoFree(SrsMessage, msg); |
| 655 | + SrsAutoFree(SrsCreateStreamResPacket, pkt); | ||
| 656 | srs_info("get create stream response message"); | 656 | srs_info("get create stream response message"); |
| 657 | 657 | ||
| 658 | stream_id = (int)pkt->stream_id; | 658 | stream_id = (int)pkt->stream_id; |
| @@ -772,8 +772,8 @@ int SrsRtmpServer::connect_app(SrsRequest* req) | @@ -772,8 +772,8 @@ int SrsRtmpServer::connect_app(SrsRequest* req) | ||
| 772 | srs_error("expect connect app message failed. ret=%d", ret); | 772 | srs_error("expect connect app message failed. ret=%d", ret); |
| 773 | return ret; | 773 | return ret; |
| 774 | } | 774 | } |
| 775 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 776 | - SrsAutoFree(SrsConnectAppPacket, pkt, false); | 775 | + SrsAutoFree(SrsMessage, msg); |
| 776 | + SrsAutoFree(SrsConnectAppPacket, pkt); | ||
| 777 | srs_info("get connect app message"); | 777 | srs_info("get connect app message"); |
| 778 | 778 | ||
| 779 | SrsAmf0Any* prop = NULL; | 779 | SrsAmf0Any* prop = NULL; |
| @@ -922,7 +922,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string& | @@ -922,7 +922,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string& | ||
| 922 | return ret; | 922 | return ret; |
| 923 | } | 923 | } |
| 924 | 924 | ||
| 925 | - SrsAutoFree(SrsMessage, msg, false); | 925 | + SrsAutoFree(SrsMessage, msg); |
| 926 | 926 | ||
| 927 | if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { | 927 | if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { |
| 928 | srs_trace("identify ignore messages except " | 928 | srs_trace("identify ignore messages except " |
| @@ -936,7 +936,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string& | @@ -936,7 +936,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string& | ||
| 936 | return ret; | 936 | return ret; |
| 937 | } | 937 | } |
| 938 | 938 | ||
| 939 | - SrsAutoFree(SrsPacket, pkt, false); | 939 | + SrsAutoFree(SrsPacket, pkt); |
| 940 | 940 | ||
| 941 | if (dynamic_cast<SrsCreateStreamPacket*>(pkt)) { | 941 | if (dynamic_cast<SrsCreateStreamPacket*>(pkt)) { |
| 942 | srs_info("identify client by create stream, play or flash publish."); | 942 | srs_info("identify client by create stream, play or flash publish."); |
| @@ -1128,8 +1128,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) | @@ -1128,8 +1128,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) | ||
| 1128 | } | 1128 | } |
| 1129 | srs_info("recv FCPublish request message success."); | 1129 | srs_info("recv FCPublish request message success."); |
| 1130 | 1130 | ||
| 1131 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 1132 | - SrsAutoFree(SrsFMLEStartPacket, pkt, false); | 1131 | + SrsAutoFree(SrsMessage, msg); |
| 1132 | + SrsAutoFree(SrsFMLEStartPacket, pkt); | ||
| 1133 | 1133 | ||
| 1134 | fc_publish_tid = pkt->transaction_id; | 1134 | fc_publish_tid = pkt->transaction_id; |
| 1135 | } | 1135 | } |
| @@ -1154,8 +1154,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) | @@ -1154,8 +1154,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) | ||
| 1154 | } | 1154 | } |
| 1155 | srs_info("recv createStream request message success."); | 1155 | srs_info("recv createStream request message success."); |
| 1156 | 1156 | ||
| 1157 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 1158 | - SrsAutoFree(SrsCreateStreamPacket, pkt, false); | 1157 | + SrsAutoFree(SrsMessage, msg); |
| 1158 | + SrsAutoFree(SrsCreateStreamPacket, pkt); | ||
| 1159 | 1159 | ||
| 1160 | create_stream_tid = pkt->transaction_id; | 1160 | create_stream_tid = pkt->transaction_id; |
| 1161 | } | 1161 | } |
| @@ -1179,8 +1179,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) | @@ -1179,8 +1179,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) | ||
| 1179 | } | 1179 | } |
| 1180 | srs_info("recv publish request message success."); | 1180 | srs_info("recv publish request message success."); |
| 1181 | 1181 | ||
| 1182 | - SrsAutoFree(SrsMessage, msg, false); | ||
| 1183 | - SrsAutoFree(SrsPublishPacket, pkt, false); | 1182 | + SrsAutoFree(SrsMessage, msg); |
| 1183 | + SrsAutoFree(SrsPublishPacket, pkt); | ||
| 1184 | } | 1184 | } |
| 1185 | // publish response onFCPublish(NetStream.Publish.Start) | 1185 | // publish response onFCPublish(NetStream.Publish.Start) |
| 1186 | if (true) { | 1186 | if (true) { |
| @@ -1310,7 +1310,7 @@ int SrsRtmpServer::identify_create_stream_client(SrsCreateStreamPacket* req, int | @@ -1310,7 +1310,7 @@ int SrsRtmpServer::identify_create_stream_client(SrsCreateStreamPacket* req, int | ||
| 1310 | return ret; | 1310 | return ret; |
| 1311 | } | 1311 | } |
| 1312 | 1312 | ||
| 1313 | - SrsAutoFree(SrsMessage, msg, false); | 1313 | + SrsAutoFree(SrsMessage, msg); |
| 1314 | 1314 | ||
| 1315 | if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { | 1315 | if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { |
| 1316 | srs_trace("identify ignore messages except " | 1316 | srs_trace("identify ignore messages except " |
| @@ -1324,7 +1324,7 @@ int SrsRtmpServer::identify_create_stream_client(SrsCreateStreamPacket* req, int | @@ -1324,7 +1324,7 @@ int SrsRtmpServer::identify_create_stream_client(SrsCreateStreamPacket* req, int | ||
| 1324 | return ret; | 1324 | return ret; |
| 1325 | } | 1325 | } |
| 1326 | 1326 | ||
| 1327 | - SrsAutoFree(SrsPacket, pkt, false); | 1327 | + SrsAutoFree(SrsPacket, pkt); |
| 1328 | 1328 | ||
| 1329 | if (dynamic_cast<SrsPlayPacket*>(pkt)) { | 1329 | if (dynamic_cast<SrsPlayPacket*>(pkt)) { |
| 1330 | srs_info("level1 identify client by play."); | 1330 | srs_info("level1 identify client by play."); |
| @@ -442,7 +442,7 @@ int SrsProtocol::do_send_and_free_message(SrsMessage* msg, SrsPacket* packet) | @@ -442,7 +442,7 @@ int SrsProtocol::do_send_and_free_message(SrsMessage* msg, SrsPacket* packet) | ||
| 442 | 442 | ||
| 443 | // always free msg. | 443 | // always free msg. |
| 444 | srs_assert(msg); | 444 | srs_assert(msg); |
| 445 | - SrsAutoFree(SrsMessage, msg, false); | 445 | + SrsAutoFree(SrsMessage, msg); |
| 446 | 446 | ||
| 447 | // we donot use the complex basic header, | 447 | // we donot use the complex basic header, |
| 448 | // ensure the basic header is 1bytes. | 448 | // ensure the basic header is 1bytes. |
| @@ -735,7 +735,7 @@ int SrsProtocol::send_and_free_packet(SrsPacket* packet, int stream_id) | @@ -735,7 +735,7 @@ int SrsProtocol::send_and_free_packet(SrsPacket* packet, int stream_id) | ||
| 735 | int ret = ERROR_SUCCESS; | 735 | int ret = ERROR_SUCCESS; |
| 736 | 736 | ||
| 737 | srs_assert(packet); | 737 | srs_assert(packet); |
| 738 | - SrsAutoFree(SrsPacket, packet, false); | 738 | + SrsAutoFree(SrsPacket, packet); |
| 739 | 739 | ||
| 740 | int size = 0; | 740 | int size = 0; |
| 741 | char* payload = NULL; | 741 | char* payload = NULL; |
| @@ -1274,7 +1274,7 @@ int SrsProtocol::on_recv_message(SrsMessage* msg) | @@ -1274,7 +1274,7 @@ int SrsProtocol::on_recv_message(SrsMessage* msg) | ||
| 1274 | srs_assert(packet); | 1274 | srs_assert(packet); |
| 1275 | 1275 | ||
| 1276 | // always free the packet. | 1276 | // always free the packet. |
| 1277 | - SrsAutoFree(SrsPacket, packet, false); | 1277 | + SrsAutoFree(SrsPacket, packet); |
| 1278 | 1278 | ||
| 1279 | switch (msg->header.message_type) { | 1279 | switch (msg->header.message_type) { |
| 1280 | case RTMP_MSG_WindowAcknowledgementSize: { | 1280 | case RTMP_MSG_WindowAcknowledgementSize: { |
| @@ -2584,7 +2584,7 @@ int SrsPlayPacket::decode(SrsStream* stream) | @@ -2584,7 +2584,7 @@ int SrsPlayPacket::decode(SrsStream* stream) | ||
| 2584 | srs_error("amf0 read play reset marker failed. ret=%d", ret); | 2584 | srs_error("amf0 read play reset marker failed. ret=%d", ret); |
| 2585 | return ret; | 2585 | return ret; |
| 2586 | } | 2586 | } |
| 2587 | - SrsAutoFree(SrsAmf0Any, reset_value, false); | 2587 | + SrsAutoFree(SrsAmf0Any, reset_value); |
| 2588 | 2588 | ||
| 2589 | if (reset_value) { | 2589 | if (reset_value) { |
| 2590 | // check if the value is bool or number | 2590 | // check if the value is bool or number |
| @@ -3160,7 +3160,7 @@ int SrsOnMetaDataPacket::decode(SrsStream* stream) | @@ -3160,7 +3160,7 @@ int SrsOnMetaDataPacket::decode(SrsStream* stream) | ||
| 3160 | return ret; | 3160 | return ret; |
| 3161 | } | 3161 | } |
| 3162 | 3162 | ||
| 3163 | - SrsAutoFree(SrsAmf0Any, any, false); | 3163 | + SrsAutoFree(SrsAmf0Any, any); |
| 3164 | 3164 | ||
| 3165 | if (any->is_ecma_array()) { | 3165 | if (any->is_ecma_array()) { |
| 3166 | SrsAmf0EcmaArray* arr = any->to_ecma_array(); | 3166 | SrsAmf0EcmaArray* arr = any->to_ecma_array(); |
| @@ -52,13 +52,13 @@ VOID TEST(AMF0Test, ScenarioMain) | @@ -52,13 +52,13 @@ VOID TEST(AMF0Test, ScenarioMain) | ||
| 52 | // version: string | 52 | // version: string |
| 53 | // srs_sig: string | 53 | // srs_sig: string |
| 54 | SrsAmf0Object* props = SrsAmf0Any::object(); | 54 | SrsAmf0Object* props = SrsAmf0Any::object(); |
| 55 | - SrsAutoFree(SrsAmf0Object, props, false); | 55 | + SrsAutoFree(SrsAmf0Object, props); |
| 56 | props->set("fmsVer", SrsAmf0Any::str("FMS/3,5,3,888")); | 56 | props->set("fmsVer", SrsAmf0Any::str("FMS/3,5,3,888")); |
| 57 | props->set("capabilities", SrsAmf0Any::number(253)); | 57 | props->set("capabilities", SrsAmf0Any::number(253)); |
| 58 | props->set("mode", SrsAmf0Any::number(123)); | 58 | props->set("mode", SrsAmf0Any::number(123)); |
| 59 | 59 | ||
| 60 | SrsAmf0Object* info = SrsAmf0Any::object(); | 60 | SrsAmf0Object* info = SrsAmf0Any::object(); |
| 61 | - SrsAutoFree(SrsAmf0Object, info, false); | 61 | + SrsAutoFree(SrsAmf0Object, info); |
| 62 | info->set("level", SrsAmf0Any::str("info")); | 62 | info->set("level", SrsAmf0Any::str("info")); |
| 63 | info->set("code", SrsAmf0Any::str("NetStream.Connnect.Success")); | 63 | info->set("code", SrsAmf0Any::str("NetStream.Connnect.Success")); |
| 64 | info->set("descrption", SrsAmf0Any::str("connected")); | 64 | info->set("descrption", SrsAmf0Any::str("connected")); |
| @@ -85,7 +85,7 @@ VOID TEST(AMF0Test, ScenarioMain) | @@ -85,7 +85,7 @@ VOID TEST(AMF0Test, ScenarioMain) | ||
| 85 | EXPECT_EQ(0x03, bytes[0]); | 85 | EXPECT_EQ(0x03, bytes[0]); |
| 86 | EXPECT_EQ(0x09, bytes[nb_bytes - 1]); | 86 | EXPECT_EQ(0x09, bytes[nb_bytes - 1]); |
| 87 | } | 87 | } |
| 88 | - SrsAutoFree(char, bytes, true); | 88 | + SrsAutoFree(char, bytes); |
| 89 | 89 | ||
| 90 | // decoding amf0 object from bytes | 90 | // decoding amf0 object from bytes |
| 91 | // when user know the schema | 91 | // when user know the schema |
| @@ -100,12 +100,12 @@ VOID TEST(AMF0Test, ScenarioMain) | @@ -100,12 +100,12 @@ VOID TEST(AMF0Test, ScenarioMain) | ||
| 100 | // if user know the schema, for instance, it's an amf0 object, | 100 | // if user know the schema, for instance, it's an amf0 object, |
| 101 | // user can use specified object to decoding. | 101 | // user can use specified object to decoding. |
| 102 | SrsAmf0Object* props = SrsAmf0Any::object(); | 102 | SrsAmf0Object* props = SrsAmf0Any::object(); |
| 103 | - SrsAutoFree(SrsAmf0Object, props, false); | 103 | + SrsAutoFree(SrsAmf0Object, props); |
| 104 | EXPECT_EQ(ERROR_SUCCESS, props->read(&s)); | 104 | EXPECT_EQ(ERROR_SUCCESS, props->read(&s)); |
| 105 | 105 | ||
| 106 | // user can use specified object to decoding. | 106 | // user can use specified object to decoding. |
| 107 | SrsAmf0Object* info = SrsAmf0Any::object(); | 107 | SrsAmf0Object* info = SrsAmf0Any::object(); |
| 108 | - SrsAutoFree(SrsAmf0Object, info, false); | 108 | + SrsAutoFree(SrsAmf0Object, info); |
| 109 | EXPECT_EQ(ERROR_SUCCESS, info->read(&s)); | 109 | EXPECT_EQ(ERROR_SUCCESS, info->read(&s)); |
| 110 | 110 | ||
| 111 | // use the decoded data. | 111 | // use the decoded data. |
| @@ -150,7 +150,7 @@ VOID TEST(AMF0Test, ScenarioMain) | @@ -150,7 +150,7 @@ VOID TEST(AMF0Test, ScenarioMain) | ||
| 150 | // decoding a amf0 any, for user donot know | 150 | // decoding a amf0 any, for user donot know |
| 151 | SrsAmf0Any* any = NULL; | 151 | SrsAmf0Any* any = NULL; |
| 152 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &any)); | 152 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &any)); |
| 153 | - SrsAutoFree(SrsAmf0Any, any, false); | 153 | + SrsAutoFree(SrsAmf0Any, any); |
| 154 | 154 | ||
| 155 | // for amf0 object | 155 | // for amf0 object |
| 156 | if (any->is_object()) { | 156 | if (any->is_object()) { |
| @@ -192,7 +192,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -192,7 +192,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 192 | if (true) { | 192 | if (true) { |
| 193 | int size = 1+3; | 193 | int size = 1+3; |
| 194 | SrsAmf0Object* o = SrsAmf0Any::object(); | 194 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 195 | - SrsAutoFree(SrsAmf0Object, o, false); | 195 | + SrsAutoFree(SrsAmf0Object, o); |
| 196 | 196 | ||
| 197 | EXPECT_EQ(size, SrsAmf0Size::object(o)); | 197 | EXPECT_EQ(size, SrsAmf0Size::object(o)); |
| 198 | } | 198 | } |
| @@ -200,7 +200,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -200,7 +200,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 200 | if (true) { | 200 | if (true) { |
| 201 | int size = 1+3; | 201 | int size = 1+3; |
| 202 | SrsAmf0Object* o = SrsAmf0Any::object(); | 202 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 203 | - SrsAutoFree(SrsAmf0Object, o, false); | 203 | + SrsAutoFree(SrsAmf0Object, o); |
| 204 | 204 | ||
| 205 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 205 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 206 | o->set("name", SrsAmf0Any::str("winlin")); | 206 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -210,7 +210,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -210,7 +210,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 210 | if (true) { | 210 | if (true) { |
| 211 | int size = 1+3; | 211 | int size = 1+3; |
| 212 | SrsAmf0Object* o = SrsAmf0Any::object(); | 212 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 213 | - SrsAutoFree(SrsAmf0Object, o, false); | 213 | + SrsAutoFree(SrsAmf0Object, o); |
| 214 | 214 | ||
| 215 | size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); | 215 | size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); |
| 216 | o->set("age", SrsAmf0Any::number(9)); | 216 | o->set("age", SrsAmf0Any::number(9)); |
| @@ -220,7 +220,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -220,7 +220,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 220 | if (true) { | 220 | if (true) { |
| 221 | int size = 1+3; | 221 | int size = 1+3; |
| 222 | SrsAmf0Object* o = SrsAmf0Any::object(); | 222 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 223 | - SrsAutoFree(SrsAmf0Object, o, false); | 223 | + SrsAutoFree(SrsAmf0Object, o); |
| 224 | 224 | ||
| 225 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); | 225 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); |
| 226 | o->set("email", SrsAmf0Any::null()); | 226 | o->set("email", SrsAmf0Any::null()); |
| @@ -230,7 +230,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -230,7 +230,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 230 | if (true) { | 230 | if (true) { |
| 231 | int size = 1+3; | 231 | int size = 1+3; |
| 232 | SrsAmf0Object* o = SrsAmf0Any::object(); | 232 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 233 | - SrsAutoFree(SrsAmf0Object, o, false); | 233 | + SrsAutoFree(SrsAmf0Object, o); |
| 234 | 234 | ||
| 235 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); | 235 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); |
| 236 | o->set("email", SrsAmf0Any::undefined()); | 236 | o->set("email", SrsAmf0Any::undefined()); |
| @@ -240,7 +240,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -240,7 +240,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 240 | if (true) { | 240 | if (true) { |
| 241 | int size = 1+3; | 241 | int size = 1+3; |
| 242 | SrsAmf0Object* o = SrsAmf0Any::object(); | 242 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 243 | - SrsAutoFree(SrsAmf0Object, o, false); | 243 | + SrsAutoFree(SrsAmf0Object, o); |
| 244 | 244 | ||
| 245 | size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); | 245 | size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); |
| 246 | o->set("sex", SrsAmf0Any::boolean(true)); | 246 | o->set("sex", SrsAmf0Any::boolean(true)); |
| @@ -252,7 +252,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -252,7 +252,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 252 | if (true) { | 252 | if (true) { |
| 253 | int size = 1+4+3; | 253 | int size = 1+4+3; |
| 254 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 254 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 255 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 255 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 256 | 256 | ||
| 257 | EXPECT_EQ(size, SrsAmf0Size::ecma_array(o)); | 257 | EXPECT_EQ(size, SrsAmf0Size::ecma_array(o)); |
| 258 | } | 258 | } |
| @@ -260,7 +260,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -260,7 +260,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 260 | if (true) { | 260 | if (true) { |
| 261 | int size = 1+4+3; | 261 | int size = 1+4+3; |
| 262 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 262 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 263 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 263 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 264 | 264 | ||
| 265 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 265 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 266 | o->set("name", SrsAmf0Any::str("winlin")); | 266 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -270,7 +270,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -270,7 +270,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 270 | if (true) { | 270 | if (true) { |
| 271 | int size = 1+4+3; | 271 | int size = 1+4+3; |
| 272 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 272 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 273 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 273 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 274 | 274 | ||
| 275 | size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); | 275 | size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); |
| 276 | o->set("age", SrsAmf0Any::number(9)); | 276 | o->set("age", SrsAmf0Any::number(9)); |
| @@ -280,7 +280,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -280,7 +280,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 280 | if (true) { | 280 | if (true) { |
| 281 | int size = 1+4+3; | 281 | int size = 1+4+3; |
| 282 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 282 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 283 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 283 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 284 | 284 | ||
| 285 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); | 285 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); |
| 286 | o->set("email", SrsAmf0Any::null()); | 286 | o->set("email", SrsAmf0Any::null()); |
| @@ -290,7 +290,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -290,7 +290,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 290 | if (true) { | 290 | if (true) { |
| 291 | int size = 1+4+3; | 291 | int size = 1+4+3; |
| 292 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 292 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 293 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 293 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 294 | 294 | ||
| 295 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); | 295 | size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); |
| 296 | o->set("email", SrsAmf0Any::undefined()); | 296 | o->set("email", SrsAmf0Any::undefined()); |
| @@ -300,7 +300,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -300,7 +300,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 300 | if (true) { | 300 | if (true) { |
| 301 | int size = 1+4+3; | 301 | int size = 1+4+3; |
| 302 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 302 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 303 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 303 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 304 | 304 | ||
| 305 | size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); | 305 | size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); |
| 306 | o->set("sex", SrsAmf0Any::boolean(true)); | 306 | o->set("sex", SrsAmf0Any::boolean(true)); |
| @@ -312,7 +312,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -312,7 +312,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 312 | if (true) { | 312 | if (true) { |
| 313 | int size = 1+3; | 313 | int size = 1+3; |
| 314 | SrsAmf0Object* o = SrsAmf0Any::object(); | 314 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 315 | - SrsAutoFree(SrsAmf0Object, o, false); | 315 | + SrsAutoFree(SrsAmf0Object, o); |
| 316 | 316 | ||
| 317 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 317 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 318 | o->set("name", SrsAmf0Any::str("winlin")); | 318 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -327,7 +327,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -327,7 +327,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 327 | if (true) { | 327 | if (true) { |
| 328 | int size = 1+3; | 328 | int size = 1+3; |
| 329 | SrsAmf0Object* o = SrsAmf0Any::object(); | 329 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 330 | - SrsAutoFree(SrsAmf0Object, o, false); | 330 | + SrsAutoFree(SrsAmf0Object, o); |
| 331 | 331 | ||
| 332 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 332 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 333 | o->set("name", SrsAmf0Any::str("winlin")); | 333 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -349,7 +349,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -349,7 +349,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 349 | if (true) { | 349 | if (true) { |
| 350 | int size = 1+4+3; | 350 | int size = 1+4+3; |
| 351 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 351 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 352 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 352 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 353 | 353 | ||
| 354 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 354 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 355 | o->set("name", SrsAmf0Any::str("winlin")); | 355 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -364,7 +364,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -364,7 +364,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 364 | if (true) { | 364 | if (true) { |
| 365 | int size = 1+4+3; | 365 | int size = 1+4+3; |
| 366 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 366 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 367 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 367 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 368 | 368 | ||
| 369 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 369 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 370 | o->set("name", SrsAmf0Any::str("winlin")); | 370 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -386,7 +386,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -386,7 +386,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 386 | if (true) { | 386 | if (true) { |
| 387 | int size = 1+3; | 387 | int size = 1+3; |
| 388 | SrsAmf0Object* o = SrsAmf0Any::object(); | 388 | SrsAmf0Object* o = SrsAmf0Any::object(); |
| 389 | - SrsAutoFree(SrsAmf0Object, o, false); | 389 | + SrsAutoFree(SrsAmf0Object, o); |
| 390 | 390 | ||
| 391 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 391 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 392 | o->set("name", SrsAmf0Any::str("winlin")); | 392 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -408,7 +408,7 @@ VOID TEST(AMF0Test, ApiSize) | @@ -408,7 +408,7 @@ VOID TEST(AMF0Test, ApiSize) | ||
| 408 | if (true) { | 408 | if (true) { |
| 409 | int size = 1+4+3; | 409 | int size = 1+4+3; |
| 410 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); | 410 | SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); |
| 411 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 411 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 412 | 412 | ||
| 413 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); | 413 | size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); |
| 414 | o->set("name", SrsAmf0Any::str("winlin")); | 414 | o->set("name", SrsAmf0Any::str("winlin")); |
| @@ -434,14 +434,14 @@ VOID TEST(AMF0Test, ApiAnyElem) | @@ -434,14 +434,14 @@ VOID TEST(AMF0Test, ApiAnyElem) | ||
| 434 | // string | 434 | // string |
| 435 | if (true) { | 435 | if (true) { |
| 436 | o = SrsAmf0Any::str(); | 436 | o = SrsAmf0Any::str(); |
| 437 | - SrsAutoFree(SrsAmf0Any, o, false); | 437 | + SrsAutoFree(SrsAmf0Any, o); |
| 438 | ASSERT_TRUE(NULL != o); | 438 | ASSERT_TRUE(NULL != o); |
| 439 | EXPECT_TRUE(o->is_string()); | 439 | EXPECT_TRUE(o->is_string()); |
| 440 | EXPECT_STREQ("", o->to_str().c_str()); | 440 | EXPECT_STREQ("", o->to_str().c_str()); |
| 441 | } | 441 | } |
| 442 | if (true) { | 442 | if (true) { |
| 443 | o = SrsAmf0Any::str("winlin"); | 443 | o = SrsAmf0Any::str("winlin"); |
| 444 | - SrsAutoFree(SrsAmf0Any, o, false); | 444 | + SrsAutoFree(SrsAmf0Any, o); |
| 445 | ASSERT_TRUE(NULL != o); | 445 | ASSERT_TRUE(NULL != o); |
| 446 | EXPECT_TRUE(o->is_string()); | 446 | EXPECT_TRUE(o->is_string()); |
| 447 | EXPECT_STREQ("winlin", o->to_str().c_str()); | 447 | EXPECT_STREQ("winlin", o->to_str().c_str()); |
| @@ -450,21 +450,21 @@ VOID TEST(AMF0Test, ApiAnyElem) | @@ -450,21 +450,21 @@ VOID TEST(AMF0Test, ApiAnyElem) | ||
| 450 | // bool | 450 | // bool |
| 451 | if (true) { | 451 | if (true) { |
| 452 | o = SrsAmf0Any::boolean(); | 452 | o = SrsAmf0Any::boolean(); |
| 453 | - SrsAutoFree(SrsAmf0Any, o, false); | 453 | + SrsAutoFree(SrsAmf0Any, o); |
| 454 | ASSERT_TRUE(NULL != o); | 454 | ASSERT_TRUE(NULL != o); |
| 455 | EXPECT_TRUE(o->is_boolean()); | 455 | EXPECT_TRUE(o->is_boolean()); |
| 456 | EXPECT_FALSE(o->to_boolean()); | 456 | EXPECT_FALSE(o->to_boolean()); |
| 457 | } | 457 | } |
| 458 | if (true) { | 458 | if (true) { |
| 459 | o = SrsAmf0Any::boolean(false); | 459 | o = SrsAmf0Any::boolean(false); |
| 460 | - SrsAutoFree(SrsAmf0Any, o, false); | 460 | + SrsAutoFree(SrsAmf0Any, o); |
| 461 | ASSERT_TRUE(NULL != o); | 461 | ASSERT_TRUE(NULL != o); |
| 462 | EXPECT_TRUE(o->is_boolean()); | 462 | EXPECT_TRUE(o->is_boolean()); |
| 463 | EXPECT_FALSE(o->to_boolean()); | 463 | EXPECT_FALSE(o->to_boolean()); |
| 464 | } | 464 | } |
| 465 | if (true) { | 465 | if (true) { |
| 466 | o = SrsAmf0Any::boolean(true); | 466 | o = SrsAmf0Any::boolean(true); |
| 467 | - SrsAutoFree(SrsAmf0Any, o, false); | 467 | + SrsAutoFree(SrsAmf0Any, o); |
| 468 | ASSERT_TRUE(NULL != o); | 468 | ASSERT_TRUE(NULL != o); |
| 469 | EXPECT_TRUE(o->is_boolean()); | 469 | EXPECT_TRUE(o->is_boolean()); |
| 470 | EXPECT_TRUE(o->to_boolean()); | 470 | EXPECT_TRUE(o->to_boolean()); |
| @@ -473,21 +473,21 @@ VOID TEST(AMF0Test, ApiAnyElem) | @@ -473,21 +473,21 @@ VOID TEST(AMF0Test, ApiAnyElem) | ||
| 473 | // number | 473 | // number |
| 474 | if (true) { | 474 | if (true) { |
| 475 | o = SrsAmf0Any::number(); | 475 | o = SrsAmf0Any::number(); |
| 476 | - SrsAutoFree(SrsAmf0Any, o, false); | 476 | + SrsAutoFree(SrsAmf0Any, o); |
| 477 | ASSERT_TRUE(NULL != o); | 477 | ASSERT_TRUE(NULL != o); |
| 478 | EXPECT_TRUE(o->is_number()); | 478 | EXPECT_TRUE(o->is_number()); |
| 479 | EXPECT_DOUBLE_EQ(0, o->to_number()); | 479 | EXPECT_DOUBLE_EQ(0, o->to_number()); |
| 480 | } | 480 | } |
| 481 | if (true) { | 481 | if (true) { |
| 482 | o = SrsAmf0Any::number(100); | 482 | o = SrsAmf0Any::number(100); |
| 483 | - SrsAutoFree(SrsAmf0Any, o, false); | 483 | + SrsAutoFree(SrsAmf0Any, o); |
| 484 | ASSERT_TRUE(NULL != o); | 484 | ASSERT_TRUE(NULL != o); |
| 485 | EXPECT_TRUE(o->is_number()); | 485 | EXPECT_TRUE(o->is_number()); |
| 486 | EXPECT_DOUBLE_EQ(100, o->to_number()); | 486 | EXPECT_DOUBLE_EQ(100, o->to_number()); |
| 487 | } | 487 | } |
| 488 | if (true) { | 488 | if (true) { |
| 489 | o = SrsAmf0Any::number(-100); | 489 | o = SrsAmf0Any::number(-100); |
| 490 | - SrsAutoFree(SrsAmf0Any, o, false); | 490 | + SrsAutoFree(SrsAmf0Any, o); |
| 491 | ASSERT_TRUE(NULL != o); | 491 | ASSERT_TRUE(NULL != o); |
| 492 | EXPECT_TRUE(o->is_number()); | 492 | EXPECT_TRUE(o->is_number()); |
| 493 | EXPECT_DOUBLE_EQ(-100, o->to_number()); | 493 | EXPECT_DOUBLE_EQ(-100, o->to_number()); |
| @@ -496,7 +496,7 @@ VOID TEST(AMF0Test, ApiAnyElem) | @@ -496,7 +496,7 @@ VOID TEST(AMF0Test, ApiAnyElem) | ||
| 496 | // null | 496 | // null |
| 497 | if (true) { | 497 | if (true) { |
| 498 | o = SrsAmf0Any::null(); | 498 | o = SrsAmf0Any::null(); |
| 499 | - SrsAutoFree(SrsAmf0Any, o, false); | 499 | + SrsAutoFree(SrsAmf0Any, o); |
| 500 | ASSERT_TRUE(NULL != o); | 500 | ASSERT_TRUE(NULL != o); |
| 501 | EXPECT_TRUE(o->is_null()); | 501 | EXPECT_TRUE(o->is_null()); |
| 502 | } | 502 | } |
| @@ -504,7 +504,7 @@ VOID TEST(AMF0Test, ApiAnyElem) | @@ -504,7 +504,7 @@ VOID TEST(AMF0Test, ApiAnyElem) | ||
| 504 | // undefined | 504 | // undefined |
| 505 | if (true) { | 505 | if (true) { |
| 506 | o = SrsAmf0Any::undefined(); | 506 | o = SrsAmf0Any::undefined(); |
| 507 | - SrsAutoFree(SrsAmf0Any, o, false); | 507 | + SrsAutoFree(SrsAmf0Any, o); |
| 508 | ASSERT_TRUE(NULL != o); | 508 | ASSERT_TRUE(NULL != o); |
| 509 | EXPECT_TRUE(o->is_undefined()); | 509 | EXPECT_TRUE(o->is_undefined()); |
| 510 | } | 510 | } |
| @@ -525,7 +525,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -525,7 +525,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 525 | s.current()[2] = 0x09; | 525 | s.current()[2] = 0x09; |
| 526 | 526 | ||
| 527 | o = SrsAmf0Any::object_eof(); | 527 | o = SrsAmf0Any::object_eof(); |
| 528 | - SrsAutoFree(SrsAmf0Any, o, false); | 528 | + SrsAutoFree(SrsAmf0Any, o); |
| 529 | 529 | ||
| 530 | EXPECT_EQ(ERROR_SUCCESS, o->read(&s)); | 530 | EXPECT_EQ(ERROR_SUCCESS, o->read(&s)); |
| 531 | EXPECT_EQ(o->total_size(), s.pos()); | 531 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -539,7 +539,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -539,7 +539,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 539 | s.reset(); | 539 | s.reset(); |
| 540 | 540 | ||
| 541 | o = SrsAmf0Any::object_eof(); | 541 | o = SrsAmf0Any::object_eof(); |
| 542 | - SrsAutoFree(SrsAmf0Any, o, false); | 542 | + SrsAutoFree(SrsAmf0Any, o); |
| 543 | 543 | ||
| 544 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 544 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 545 | EXPECT_EQ(o->total_size(), s.pos()); | 545 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -554,7 +554,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -554,7 +554,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 554 | s.reset(); | 554 | s.reset(); |
| 555 | 555 | ||
| 556 | o = SrsAmf0Any::str("winlin"); | 556 | o = SrsAmf0Any::str("winlin"); |
| 557 | - SrsAutoFree(SrsAmf0Any, o, false); | 557 | + SrsAutoFree(SrsAmf0Any, o); |
| 558 | 558 | ||
| 559 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 559 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 560 | EXPECT_EQ(o->total_size(), s.pos()); | 560 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -577,7 +577,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -577,7 +577,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 577 | s.reset(); | 577 | s.reset(); |
| 578 | 578 | ||
| 579 | o = SrsAmf0Any::number(10); | 579 | o = SrsAmf0Any::number(10); |
| 580 | - SrsAutoFree(SrsAmf0Any, o, false); | 580 | + SrsAutoFree(SrsAmf0Any, o); |
| 581 | 581 | ||
| 582 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 582 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 583 | EXPECT_EQ(o->total_size(), s.pos()); | 583 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -596,7 +596,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -596,7 +596,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 596 | s.reset(); | 596 | s.reset(); |
| 597 | 597 | ||
| 598 | o = SrsAmf0Any::boolean(true); | 598 | o = SrsAmf0Any::boolean(true); |
| 599 | - SrsAutoFree(SrsAmf0Any, o, false); | 599 | + SrsAutoFree(SrsAmf0Any, o); |
| 600 | 600 | ||
| 601 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 601 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 602 | EXPECT_EQ(o->total_size(), s.pos()); | 602 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -613,7 +613,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -613,7 +613,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 613 | s.reset(); | 613 | s.reset(); |
| 614 | 614 | ||
| 615 | o = SrsAmf0Any::boolean(false); | 615 | o = SrsAmf0Any::boolean(false); |
| 616 | - SrsAutoFree(SrsAmf0Any, o, false); | 616 | + SrsAutoFree(SrsAmf0Any, o); |
| 617 | 617 | ||
| 618 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 618 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 619 | EXPECT_EQ(o->total_size(), s.pos()); | 619 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -632,7 +632,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -632,7 +632,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 632 | s.reset(); | 632 | s.reset(); |
| 633 | 633 | ||
| 634 | o = SrsAmf0Any::null(); | 634 | o = SrsAmf0Any::null(); |
| 635 | - SrsAutoFree(SrsAmf0Any, o, false); | 635 | + SrsAutoFree(SrsAmf0Any, o); |
| 636 | 636 | ||
| 637 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 637 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 638 | EXPECT_EQ(o->total_size(), s.pos()); | 638 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -651,7 +651,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -651,7 +651,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 651 | s.reset(); | 651 | s.reset(); |
| 652 | 652 | ||
| 653 | o = SrsAmf0Any::undefined(); | 653 | o = SrsAmf0Any::undefined(); |
| 654 | - SrsAutoFree(SrsAmf0Any, o, false); | 654 | + SrsAutoFree(SrsAmf0Any, o); |
| 655 | 655 | ||
| 656 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 656 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 657 | EXPECT_EQ(o->total_size(), s.pos()); | 657 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -670,7 +670,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -670,7 +670,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 670 | s.reset(); | 670 | s.reset(); |
| 671 | 671 | ||
| 672 | o = SrsAmf0Any::str("winlin"); | 672 | o = SrsAmf0Any::str("winlin"); |
| 673 | - SrsAutoFree(SrsAmf0Any, o, false); | 673 | + SrsAutoFree(SrsAmf0Any, o); |
| 674 | 674 | ||
| 675 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 675 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 676 | EXPECT_EQ(o->total_size(), s.pos()); | 676 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -680,7 +680,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -680,7 +680,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 680 | SrsAmf0Any* po = NULL; | 680 | SrsAmf0Any* po = NULL; |
| 681 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); | 681 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); |
| 682 | ASSERT_TRUE(NULL != po); | 682 | ASSERT_TRUE(NULL != po); |
| 683 | - SrsAutoFree(SrsAmf0Any, po, false); | 683 | + SrsAutoFree(SrsAmf0Any, po); |
| 684 | ASSERT_TRUE(po->is_string()); | 684 | ASSERT_TRUE(po->is_string()); |
| 685 | EXPECT_STREQ("winlin", po->to_str().c_str()); | 685 | EXPECT_STREQ("winlin", po->to_str().c_str()); |
| 686 | } | 686 | } |
| @@ -690,7 +690,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -690,7 +690,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 690 | s.reset(); | 690 | s.reset(); |
| 691 | 691 | ||
| 692 | o = SrsAmf0Any::number(10); | 692 | o = SrsAmf0Any::number(10); |
| 693 | - SrsAutoFree(SrsAmf0Any, o, false); | 693 | + SrsAutoFree(SrsAmf0Any, o); |
| 694 | 694 | ||
| 695 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 695 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 696 | EXPECT_EQ(o->total_size(), s.pos()); | 696 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -700,7 +700,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -700,7 +700,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 700 | SrsAmf0Any* po = NULL; | 700 | SrsAmf0Any* po = NULL; |
| 701 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); | 701 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); |
| 702 | ASSERT_TRUE(NULL != po); | 702 | ASSERT_TRUE(NULL != po); |
| 703 | - SrsAutoFree(SrsAmf0Any, po, false); | 703 | + SrsAutoFree(SrsAmf0Any, po); |
| 704 | ASSERT_TRUE(po->is_number()); | 704 | ASSERT_TRUE(po->is_number()); |
| 705 | EXPECT_DOUBLE_EQ(10, po->to_number()); | 705 | EXPECT_DOUBLE_EQ(10, po->to_number()); |
| 706 | } | 706 | } |
| @@ -710,7 +710,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -710,7 +710,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 710 | s.reset(); | 710 | s.reset(); |
| 711 | 711 | ||
| 712 | o = SrsAmf0Any::boolean(true); | 712 | o = SrsAmf0Any::boolean(true); |
| 713 | - SrsAutoFree(SrsAmf0Any, o, false); | 713 | + SrsAutoFree(SrsAmf0Any, o); |
| 714 | 714 | ||
| 715 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 715 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 716 | EXPECT_EQ(o->total_size(), s.pos()); | 716 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -720,7 +720,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -720,7 +720,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 720 | SrsAmf0Any* po = NULL; | 720 | SrsAmf0Any* po = NULL; |
| 721 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); | 721 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); |
| 722 | ASSERT_TRUE(NULL != po); | 722 | ASSERT_TRUE(NULL != po); |
| 723 | - SrsAutoFree(SrsAmf0Any, po, false); | 723 | + SrsAutoFree(SrsAmf0Any, po); |
| 724 | ASSERT_TRUE(po->is_boolean()); | 724 | ASSERT_TRUE(po->is_boolean()); |
| 725 | EXPECT_TRUE(po->to_boolean()); | 725 | EXPECT_TRUE(po->to_boolean()); |
| 726 | } | 726 | } |
| @@ -730,7 +730,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -730,7 +730,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 730 | s.reset(); | 730 | s.reset(); |
| 731 | 731 | ||
| 732 | o = SrsAmf0Any::null(); | 732 | o = SrsAmf0Any::null(); |
| 733 | - SrsAutoFree(SrsAmf0Any, o, false); | 733 | + SrsAutoFree(SrsAmf0Any, o); |
| 734 | 734 | ||
| 735 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 735 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 736 | EXPECT_EQ(o->total_size(), s.pos()); | 736 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -740,7 +740,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -740,7 +740,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 740 | SrsAmf0Any* po = NULL; | 740 | SrsAmf0Any* po = NULL; |
| 741 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); | 741 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); |
| 742 | ASSERT_TRUE(NULL != po); | 742 | ASSERT_TRUE(NULL != po); |
| 743 | - SrsAutoFree(SrsAmf0Any, po, false); | 743 | + SrsAutoFree(SrsAmf0Any, po); |
| 744 | ASSERT_TRUE(po->is_null()); | 744 | ASSERT_TRUE(po->is_null()); |
| 745 | } | 745 | } |
| 746 | 746 | ||
| @@ -749,7 +749,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -749,7 +749,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 749 | s.reset(); | 749 | s.reset(); |
| 750 | 750 | ||
| 751 | o = SrsAmf0Any::undefined(); | 751 | o = SrsAmf0Any::undefined(); |
| 752 | - SrsAutoFree(SrsAmf0Any, o, false); | 752 | + SrsAutoFree(SrsAmf0Any, o); |
| 753 | 753 | ||
| 754 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 754 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 755 | EXPECT_EQ(o->total_size(), s.pos()); | 755 | EXPECT_EQ(o->total_size(), s.pos()); |
| @@ -759,7 +759,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | @@ -759,7 +759,7 @@ VOID TEST(AMF0Test, ApiAnyIO) | ||
| 759 | SrsAmf0Any* po = NULL; | 759 | SrsAmf0Any* po = NULL; |
| 760 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); | 760 | EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); |
| 761 | ASSERT_TRUE(NULL != po); | 761 | ASSERT_TRUE(NULL != po); |
| 762 | - SrsAutoFree(SrsAmf0Any, po, false); | 762 | + SrsAutoFree(SrsAmf0Any, po); |
| 763 | ASSERT_TRUE(po->is_undefined()); | 763 | ASSERT_TRUE(po->is_undefined()); |
| 764 | } | 764 | } |
| 765 | 765 | ||
| @@ -841,44 +841,44 @@ VOID TEST(AMF0Test, ApiAnyAssert) | @@ -841,44 +841,44 @@ VOID TEST(AMF0Test, ApiAnyAssert) | ||
| 841 | // any convert | 841 | // any convert |
| 842 | if (true) { | 842 | if (true) { |
| 843 | o = SrsAmf0Any::str(); | 843 | o = SrsAmf0Any::str(); |
| 844 | - SrsAutoFree(SrsAmf0Any, o, false); | 844 | + SrsAutoFree(SrsAmf0Any, o); |
| 845 | EXPECT_TRUE(o->is_string()); | 845 | EXPECT_TRUE(o->is_string()); |
| 846 | } | 846 | } |
| 847 | if (true) { | 847 | if (true) { |
| 848 | o = SrsAmf0Any::number(); | 848 | o = SrsAmf0Any::number(); |
| 849 | - SrsAutoFree(SrsAmf0Any, o, false); | 849 | + SrsAutoFree(SrsAmf0Any, o); |
| 850 | EXPECT_TRUE(o->is_number()); | 850 | EXPECT_TRUE(o->is_number()); |
| 851 | } | 851 | } |
| 852 | if (true) { | 852 | if (true) { |
| 853 | o = SrsAmf0Any::boolean(); | 853 | o = SrsAmf0Any::boolean(); |
| 854 | - SrsAutoFree(SrsAmf0Any, o, false); | 854 | + SrsAutoFree(SrsAmf0Any, o); |
| 855 | EXPECT_TRUE(o->is_boolean()); | 855 | EXPECT_TRUE(o->is_boolean()); |
| 856 | } | 856 | } |
| 857 | if (true) { | 857 | if (true) { |
| 858 | o = SrsAmf0Any::null(); | 858 | o = SrsAmf0Any::null(); |
| 859 | - SrsAutoFree(SrsAmf0Any, o, false); | 859 | + SrsAutoFree(SrsAmf0Any, o); |
| 860 | EXPECT_TRUE(o->is_null()); | 860 | EXPECT_TRUE(o->is_null()); |
| 861 | } | 861 | } |
| 862 | if (true) { | 862 | if (true) { |
| 863 | o = SrsAmf0Any::undefined(); | 863 | o = SrsAmf0Any::undefined(); |
| 864 | - SrsAutoFree(SrsAmf0Any, o, false); | 864 | + SrsAutoFree(SrsAmf0Any, o); |
| 865 | EXPECT_TRUE(o->is_undefined()); | 865 | EXPECT_TRUE(o->is_undefined()); |
| 866 | } | 866 | } |
| 867 | if (true) { | 867 | if (true) { |
| 868 | o = SrsAmf0Any::object(); | 868 | o = SrsAmf0Any::object(); |
| 869 | - SrsAutoFree(SrsAmf0Any, o, false); | 869 | + SrsAutoFree(SrsAmf0Any, o); |
| 870 | EXPECT_TRUE(o->is_object()); | 870 | EXPECT_TRUE(o->is_object()); |
| 871 | } | 871 | } |
| 872 | if (true) { | 872 | if (true) { |
| 873 | o = SrsAmf0Any::ecma_array(); | 873 | o = SrsAmf0Any::ecma_array(); |
| 874 | - SrsAutoFree(SrsAmf0Any, o, false); | 874 | + SrsAutoFree(SrsAmf0Any, o); |
| 875 | EXPECT_TRUE(o->is_ecma_array()); | 875 | EXPECT_TRUE(o->is_ecma_array()); |
| 876 | } | 876 | } |
| 877 | 877 | ||
| 878 | // empty object | 878 | // empty object |
| 879 | if (true) { | 879 | if (true) { |
| 880 | o = SrsAmf0Any::object(); | 880 | o = SrsAmf0Any::object(); |
| 881 | - SrsAutoFree(SrsAmf0Any, o, false); | 881 | + SrsAutoFree(SrsAmf0Any, o); |
| 882 | s.reset(); | 882 | s.reset(); |
| 883 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 883 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 884 | EXPECT_EQ(1+3, s.pos()); | 884 | EXPECT_EQ(1+3, s.pos()); |
| @@ -887,7 +887,7 @@ VOID TEST(AMF0Test, ApiAnyAssert) | @@ -887,7 +887,7 @@ VOID TEST(AMF0Test, ApiAnyAssert) | ||
| 887 | // empty ecma array | 887 | // empty ecma array |
| 888 | if (true) { | 888 | if (true) { |
| 889 | o = SrsAmf0Any::ecma_array(); | 889 | o = SrsAmf0Any::ecma_array(); |
| 890 | - SrsAutoFree(SrsAmf0Any, o, false); | 890 | + SrsAutoFree(SrsAmf0Any, o); |
| 891 | s.reset(); | 891 | s.reset(); |
| 892 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); | 892 | EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); |
| 893 | EXPECT_EQ(1+4+3, s.pos()); | 893 | EXPECT_EQ(1+4+3, s.pos()); |
| @@ -901,7 +901,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | @@ -901,7 +901,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | ||
| 901 | // get/set property | 901 | // get/set property |
| 902 | if (true) { | 902 | if (true) { |
| 903 | o = SrsAmf0Any::object(); | 903 | o = SrsAmf0Any::object(); |
| 904 | - SrsAutoFree(SrsAmf0Object, o, false); | 904 | + SrsAutoFree(SrsAmf0Object, o); |
| 905 | 905 | ||
| 906 | EXPECT_TRUE(NULL == o->get_property("name")); | 906 | EXPECT_TRUE(NULL == o->get_property("name")); |
| 907 | 907 | ||
| @@ -917,7 +917,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | @@ -917,7 +917,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | ||
| 917 | // index property | 917 | // index property |
| 918 | if (true) { | 918 | if (true) { |
| 919 | o = SrsAmf0Any::object(); | 919 | o = SrsAmf0Any::object(); |
| 920 | - SrsAutoFree(SrsAmf0Object, o, false); | 920 | + SrsAutoFree(SrsAmf0Object, o); |
| 921 | 921 | ||
| 922 | o->set("name", SrsAmf0Any::str("winlin")); | 922 | o->set("name", SrsAmf0Any::str("winlin")); |
| 923 | EXPECT_STREQ("name", o->key_at(0).c_str()); | 923 | EXPECT_STREQ("name", o->key_at(0).c_str()); |
| @@ -937,7 +937,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | @@ -937,7 +937,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | ||
| 937 | // ensure property | 937 | // ensure property |
| 938 | if (true) { | 938 | if (true) { |
| 939 | o = SrsAmf0Any::object(); | 939 | o = SrsAmf0Any::object(); |
| 940 | - SrsAutoFree(SrsAmf0Object, o, false); | 940 | + SrsAutoFree(SrsAmf0Object, o); |
| 941 | 941 | ||
| 942 | EXPECT_TRUE(NULL == o->ensure_property_string("name")); | 942 | EXPECT_TRUE(NULL == o->ensure_property_string("name")); |
| 943 | EXPECT_TRUE(NULL == o->ensure_property_number("age")); | 943 | EXPECT_TRUE(NULL == o->ensure_property_number("age")); |
| @@ -957,7 +957,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | @@ -957,7 +957,7 @@ VOID TEST(AMF0Test, ApiObjectProps) | ||
| 957 | // count | 957 | // count |
| 958 | if (true) { | 958 | if (true) { |
| 959 | o = SrsAmf0Any::object(); | 959 | o = SrsAmf0Any::object(); |
| 960 | - SrsAutoFree(SrsAmf0Object, o, false); | 960 | + SrsAutoFree(SrsAmf0Object, o); |
| 961 | 961 | ||
| 962 | EXPECT_EQ(0, o->count()); | 962 | EXPECT_EQ(0, o->count()); |
| 963 | 963 | ||
| @@ -979,7 +979,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | @@ -979,7 +979,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | ||
| 979 | // get/set property | 979 | // get/set property |
| 980 | if (true) { | 980 | if (true) { |
| 981 | o = SrsAmf0Any::ecma_array(); | 981 | o = SrsAmf0Any::ecma_array(); |
| 982 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 982 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 983 | 983 | ||
| 984 | EXPECT_TRUE(NULL == o->get_property("name")); | 984 | EXPECT_TRUE(NULL == o->get_property("name")); |
| 985 | 985 | ||
| @@ -995,7 +995,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | @@ -995,7 +995,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | ||
| 995 | // index property | 995 | // index property |
| 996 | if (true) { | 996 | if (true) { |
| 997 | o = SrsAmf0Any::ecma_array(); | 997 | o = SrsAmf0Any::ecma_array(); |
| 998 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 998 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 999 | 999 | ||
| 1000 | o->set("name", SrsAmf0Any::str("winlin")); | 1000 | o->set("name", SrsAmf0Any::str("winlin")); |
| 1001 | EXPECT_STREQ("name", o->key_at(0).c_str()); | 1001 | EXPECT_STREQ("name", o->key_at(0).c_str()); |
| @@ -1015,7 +1015,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | @@ -1015,7 +1015,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | ||
| 1015 | // ensure property | 1015 | // ensure property |
| 1016 | if (true) { | 1016 | if (true) { |
| 1017 | o = SrsAmf0Any::ecma_array(); | 1017 | o = SrsAmf0Any::ecma_array(); |
| 1018 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 1018 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 1019 | 1019 | ||
| 1020 | EXPECT_TRUE(NULL == o->ensure_property_string("name")); | 1020 | EXPECT_TRUE(NULL == o->ensure_property_string("name")); |
| 1021 | EXPECT_TRUE(NULL == o->ensure_property_number("age")); | 1021 | EXPECT_TRUE(NULL == o->ensure_property_number("age")); |
| @@ -1035,7 +1035,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | @@ -1035,7 +1035,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) | ||
| 1035 | // count | 1035 | // count |
| 1036 | if (true) { | 1036 | if (true) { |
| 1037 | o = SrsAmf0Any::ecma_array(); | 1037 | o = SrsAmf0Any::ecma_array(); |
| 1038 | - SrsAutoFree(SrsAmf0EcmaArray, o, false); | 1038 | + SrsAutoFree(SrsAmf0EcmaArray, o); |
| 1039 | 1039 | ||
| 1040 | EXPECT_EQ(0, o->count()); | 1040 | EXPECT_EQ(0, o->count()); |
| 1041 | 1041 |
| @@ -115,7 +115,7 @@ VOID TEST(HandshakeTest, VerifyFPC0C1) | @@ -115,7 +115,7 @@ VOID TEST(HandshakeTest, VerifyFPC0C1) | ||
| 115 | // manually validate the c1 | 115 | // manually validate the c1 |
| 116 | // @see: calc_c1_digest | 116 | // @see: calc_c1_digest |
| 117 | char* c1s1_joined_bytes = srs_bytes_join_schema0(c1.time, c1.version, &c1.block0.key, &c1.block1.digest); | 117 | char* c1s1_joined_bytes = srs_bytes_join_schema0(c1.time, c1.version, &c1.block0.key, &c1.block1.digest); |
| 118 | - SrsAutoFree(char, c1s1_joined_bytes, true); | 118 | + SrsAutoFree(char, c1s1_joined_bytes); |
| 119 | 119 | ||
| 120 | bool is_valid; | 120 | bool is_valid; |
| 121 | ASSERT_EQ(ERROR_SUCCESS, c1.c1_validate_digest(is_valid)); | 121 | ASSERT_EQ(ERROR_SUCCESS, c1.c1_validate_digest(is_valid)); |
-
请 注册 或 登录 后发表评论