diff --git a/trunk/src/app/srs_app_bandwidth.cpp b/trunk/src/app/srs_app_bandwidth.cpp index d1b62c26b..5401bb862 100644 --- a/trunk/src/app/srs_app_bandwidth.cpp +++ b/trunk/src/app/srs_app_bandwidth.cpp @@ -203,8 +203,8 @@ int SrsBandwidth::do_bandwidth_check() srs_info("expect final message failed. ret=%d", ret); return ERROR_SUCCESS; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get final message success."); if (pkt->is_flash_final()) { @@ -248,8 +248,8 @@ int SrsBandwidth::check_play( srs_error("expect bandwidth message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandwidth message succes."); if (pkt->is_starting_play()) { @@ -329,8 +329,8 @@ int SrsBandwidth::check_play( srs_error("expect bandwidth message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandwidth message succes."); if (pkt->is_stopped_play()) { @@ -372,8 +372,8 @@ int SrsBandwidth::check_publish( srs_error("expect bandwidth message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandwidth message succes."); if (pkt->is_starting_publish()) { @@ -392,7 +392,7 @@ int SrsBandwidth::check_publish( srs_error("recv message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); publish_bytes = rtmp->get_recv_bytes(); @@ -440,8 +440,8 @@ int SrsBandwidth::check_publish( srs_error("expect bandwidth message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandwidth message succes."); if (pkt->is_stopped_publish()) { diff --git a/trunk/src/app/srs_app_config.cpp b/trunk/src/app/srs_app_config.cpp index 3b570e320..be3a7eb3d 100644 --- a/trunk/src/app/srs_app_config.cpp +++ b/trunk/src/app/srs_app_config.cpp @@ -488,7 +488,7 @@ int SrsConfig::reload() srs_info("config reloader parse file success."); SrsConfDirective* old_root = root; - SrsAutoFree(SrsConfDirective, old_root, false); + SrsAutoFree(SrsConfDirective, old_root); root = conf.root; conf.root = NULL; diff --git a/trunk/src/app/srs_app_dvr.cpp b/trunk/src/app/srs_app_dvr.cpp index e20dfcefa..033939efb 100644 --- a/trunk/src/app/srs_app_dvr.cpp +++ b/trunk/src/app/srs_app_dvr.cpp @@ -446,7 +446,7 @@ int SrsDvrPlan::on_meta_data(SrsOnMetaDataPacket* metadata) if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { return ret; } - SrsAutoFree(char, payload, true); + SrsAutoFree(char, payload); if ((ret = enc->write_metadata(payload, size)) != ERROR_SUCCESS) { return ret; @@ -835,7 +835,7 @@ int SrsDvrHssPlan::on_meta_data(SrsOnMetaDataPacket* metadata) if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { return ret; } - SrsAutoFree(char, payload, true); + SrsAutoFree(char, payload); if ((ret = enc.write_metadata(payload, size)) != ERROR_SUCCESS) { return ret; @@ -1002,7 +1002,7 @@ int SrsDvr::on_audio(SrsSharedPtrMessage* audio) { int ret = ERROR_SUCCESS; - SrsAutoFree(SrsSharedPtrMessage, audio, false); + SrsAutoFree(SrsSharedPtrMessage, audio); if ((ret = plan->on_audio(audio)) != ERROR_SUCCESS) { return ret; @@ -1015,7 +1015,7 @@ int SrsDvr::on_video(SrsSharedPtrMessage* video) { int ret = ERROR_SUCCESS; - SrsAutoFree(SrsSharedPtrMessage, video, false); + SrsAutoFree(SrsSharedPtrMessage, video); if ((ret = plan->on_video(video)) != ERROR_SUCCESS) { return ret; diff --git a/trunk/src/app/srs_app_edge.cpp b/trunk/src/app/srs_app_edge.cpp index c2d330757..ba1cd9002 100644 --- a/trunk/src/app/srs_app_edge.cpp +++ b/trunk/src/app/srs_app_edge.cpp @@ -186,7 +186,7 @@ int SrsEdgeIngester::ingest() srs_verbose("edge loop recv message. ret=%d", ret); srs_assert(msg); - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); if ((ret = process_publish_message(msg)) != ERROR_SUCCESS) { return ret; @@ -234,7 +234,7 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg) srs_error("decode onMetaData message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsPacket, pkt, false); + SrsAutoFree(SrsPacket, pkt); if (dynamic_cast(pkt)) { SrsOnMetaDataPacket* metadata = dynamic_cast(pkt); @@ -527,7 +527,7 @@ int SrsEdgeForwarder::proxy(SrsMessage* msg) // TODO: FIXME: use utility to copy msg to shared ptr msg. SrsSharedPtrMessage* copy = new SrsSharedPtrMessage(); - SrsAutoFree(SrsSharedPtrMessage, copy, false); + SrsAutoFree(SrsSharedPtrMessage, copy); if ((ret = copy->initialize(msg)) != ERROR_SUCCESS) { srs_error("initialize the msg failed. ret=%d", ret); return ret; diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index a90e868f3..921ca4080 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -1388,7 +1388,7 @@ int SrsHls::on_audio(SrsSharedPtrMessage* audio) { int ret = ERROR_SUCCESS; - SrsAutoFree(SrsSharedPtrMessage, audio, false); + SrsAutoFree(SrsSharedPtrMessage, audio); if (!hls_enabled) { return ret; @@ -1432,7 +1432,7 @@ int SrsHls::on_video(SrsSharedPtrMessage* video) { int ret = ERROR_SUCCESS; - SrsAutoFree(SrsSharedPtrMessage, video, false); + SrsAutoFree(SrsSharedPtrMessage, video); if (!hls_enabled) { return ret; diff --git a/trunk/src/app/srs_app_http_api.cpp b/trunk/src/app/srs_app_http_api.cpp index 48a946569..36f878022 100644 --- a/trunk/src/app/srs_app_http_api.cpp +++ b/trunk/src/app/srs_app_http_api.cpp @@ -532,7 +532,7 @@ int SrsHttpApi::do_cycle() srs_assert(req->is_complete()); // always free it in this scope. - SrsAutoFree(SrsHttpMessage, req, false); + SrsAutoFree(SrsHttpMessage, req); // ok, handle http request. if ((ret = process_request(&skt, req)) != ERROR_SUCCESS) { diff --git a/trunk/src/app/srs_app_http_conn.cpp b/trunk/src/app/srs_app_http_conn.cpp index 738b8bd75..32231ce6f 100644 --- a/trunk/src/app/srs_app_http_conn.cpp +++ b/trunk/src/app/srs_app_http_conn.cpp @@ -228,7 +228,7 @@ int SrsHttpVhost::do_process_request(SrsSocket* skt, SrsHttpMessage* req) ::lseek(fd, 0, SEEK_SET); char* buf = new char[length]; - SrsAutoFree(char, buf, true); + SrsAutoFree(char, buf); // TODO: FIXME: use st_read. if (::read(fd, buf, length) < 0) { @@ -352,7 +352,7 @@ int SrsHttpConn::do_cycle() srs_assert(req->is_complete()); // always free it in this scope. - SrsAutoFree(SrsHttpMessage, req, false); + SrsAutoFree(SrsHttpMessage, req); // ok, handle http request. if ((ret = process_request(&skt, req)) != ERROR_SUCCESS) { diff --git a/trunk/src/app/srs_app_rtmp_conn.cpp b/trunk/src/app/srs_app_rtmp_conn.cpp index 611c71f8f..22d863361 100644 --- a/trunk/src/app/srs_app_rtmp_conn.cpp +++ b/trunk/src/app/srs_app_rtmp_conn.cpp @@ -460,7 +460,7 @@ int SrsRtmpConn::playing(SrsSource* source) } srs_assert(consumer != NULL); - SrsAutoFree(SrsConsumer, consumer, false); + SrsAutoFree(SrsConsumer, consumer); srs_verbose("consumer created success."); rtmp->set_recv_timeout(SRS_PULSE_TIMEOUT_US); @@ -595,7 +595,7 @@ int SrsRtmpConn::fmle_publish(SrsSource* source) return ret; } - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); pithy_print.elapse(); @@ -614,7 +614,7 @@ int SrsRtmpConn::fmle_publish(SrsSource* source) return ret; } - SrsAutoFree(SrsPacket, pkt, false); + SrsAutoFree(SrsPacket, pkt); if (dynamic_cast(pkt)) { SrsFMLEStartPacket* unpublish = dynamic_cast(pkt); @@ -671,7 +671,7 @@ int SrsRtmpConn::flash_publish(SrsSource* source) return ret; } - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); pithy_print.elapse(); @@ -690,7 +690,7 @@ int SrsRtmpConn::flash_publish(SrsSource* source) return ret; } - SrsAutoFree(SrsPacket, pkt, false); + SrsAutoFree(SrsPacket, pkt); // flash unpublish. // TODO: maybe need to support republish. @@ -754,7 +754,7 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo srs_error("decode onMetaData message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsPacket, pkt, false); + SrsAutoFree(SrsPacket, pkt); if (dynamic_cast(pkt)) { SrsOnMetaDataPacket* metadata = dynamic_cast(pkt); @@ -781,7 +781,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg srs_verbose("ignore all empty message."); return ret; } - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { srs_info("ignore all message except amf0/amf3 command."); @@ -795,7 +795,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg } srs_info("decode the amf0/amf3 command packet success."); - SrsAutoFree(SrsPacket, pkt, false); + SrsAutoFree(SrsPacket, pkt); // for jwplayer/flowplayer, which send close as pause message. // @see https://github.com/winlinvip/simple-rtmp-server/issues/6 diff --git a/trunk/src/app/srs_app_source.cpp b/trunk/src/app/srs_app_source.cpp index f85913b7b..07824149f 100644 --- a/trunk/src/app/srs_app_source.cpp +++ b/trunk/src/app/srs_app_source.cpp @@ -898,7 +898,7 @@ int SrsSource::on_audio(SrsMessage* audio) int ret = ERROR_SUCCESS; SrsSharedPtrMessage* msg = new SrsSharedPtrMessage(); - SrsAutoFree(SrsSharedPtrMessage, msg, false); + SrsAutoFree(SrsSharedPtrMessage, msg); if ((ret = msg->initialize(audio)) != ERROR_SUCCESS) { srs_error("initialize the audio failed. ret=%d", ret); return ret; @@ -988,7 +988,7 @@ int SrsSource::on_video(SrsMessage* video) int ret = ERROR_SUCCESS; SrsSharedPtrMessage* msg = new SrsSharedPtrMessage(); - SrsAutoFree(SrsSharedPtrMessage, msg, false); + SrsAutoFree(SrsSharedPtrMessage, msg); if ((ret = msg->initialize(video)) != ERROR_SUCCESS) { srs_error("initialize the video failed. ret=%d", ret); return ret; diff --git a/trunk/src/core/srs_core_autofree.hpp b/trunk/src/core/srs_core_autofree.hpp index 0be49f79f..17c9afd63 100644 --- a/trunk/src/core/srs_core_autofree.hpp +++ b/trunk/src/core/srs_core_autofree.hpp @@ -33,23 +33,21 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /** * auto free the instance in the current scope. */ -#define SrsAutoFree(className, instance, is_array) \ - __SrsAutoFree _auto_free_##instance((className**)&instance, is_array) +#define SrsAutoFree(className, instance) \ + __SrsAutoFree _auto_free_##instance((className**)&instance) template class __SrsAutoFree { private: T** ptr; - bool is_array; public: /** * auto delete the ptr. * @is_array a bool value indicates whether the ptr is a array. */ - __SrsAutoFree(T** _ptr, bool _is_array){ + __SrsAutoFree(T** _ptr){ ptr = _ptr; - is_array = _is_array; } virtual ~__SrsAutoFree(){ @@ -57,15 +55,22 @@ public: return; } - if (is_array) { - delete[] *ptr; - } else { - delete *ptr; - } + delete *ptr; *ptr = NULL; } }; +/** +* auto free the array ptrs, for example, MyClass* msgs[10], +* which stores 10 MyClass* objects, this class will: +* 1. free each MyClass* in array. +* 2. free the msgs itself. +* @remark, MyClass* msgs[] equals to MyClass**, the ptr array equals ptr to ptr. +*/ +template +class SrsObjectPtrArrayAutoFree +{ +}; #endif \ No newline at end of file diff --git a/trunk/src/libs/srs_librtmp.cpp b/trunk/src/libs/srs_librtmp.cpp index 597fdf3a0..6ed66665e 100644 --- a/trunk/src/libs/srs_librtmp.cpp +++ b/trunk/src/libs/srs_librtmp.cpp @@ -291,7 +291,7 @@ int srs_read_packet(srs_rtmp_t rtmp, int* type, u_int32_t* timestamp, char** dat continue; } - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); if (msg->header.is_audio()) { *type = SRS_RTMP_TYPE_AUDIO; diff --git a/trunk/src/main/srs_main_bandcheck.cpp b/trunk/src/main/srs_main_bandcheck.cpp index e0776020a..37ac0dddd 100644 --- a/trunk/src/main/srs_main_bandcheck.cpp +++ b/trunk/src/main/srs_main_bandcheck.cpp @@ -348,8 +348,8 @@ int SrsBandCheckClient::expect_start_play() srs_error("expect bandcheck start play message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandcheck start play message"); if (pkt->command_name != SRS_BW_CHECK_START_PLAY) { @@ -385,8 +385,8 @@ int SrsBandCheckClient::expect_stop_play() srs_error("expect stop play message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandcheck stop play message"); if (pkt->command_name == SRS_BW_CHECK_STOP_PLAY) { @@ -422,8 +422,8 @@ int SrsBandCheckClient::expect_start_pub() srs_error("expect start pub message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandcheck start pub message"); if (pkt->command_name == SRS_BW_CHECK_START_PUBLISH) { @@ -491,8 +491,8 @@ int SrsBandCheckClient::expect_stop_pub() if ((ret = srs_rtmp_expect_message(this->protocol, &msg, &pkt)) != ERROR_SUCCESS) { return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); if (pkt->command_name == SRS_BW_CHECK_STOP_PUBLISH) { return ret; } @@ -511,13 +511,13 @@ int SrsBandCheckClient::expect_finished() srs_error("expect finished message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsBandwidthPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsBandwidthPacket, pkt); srs_info("get bandcheck finished message"); if (pkt->command_name == SRS_BW_CHECK_FINISHED) { SrsStream *stream = new SrsStream; - SrsAutoFree(SrsStream, stream, false); + SrsAutoFree(SrsStream, stream); if ((ret = stream->initialize((char*)msg->payload, msg->size)) != ERROR_SUCCESS) { srs_error("initialize stream error. ret=%d", ret); diff --git a/trunk/src/rtmp/srs_protocol_handshake.cpp b/trunk/src/rtmp/srs_protocol_handshake.cpp index b94d039e8..e13d7545c 100644 --- a/trunk/src/rtmp/srs_protocol_handshake.cpp +++ b/trunk/src/rtmp/srs_protocol_handshake.cpp @@ -813,7 +813,7 @@ namespace srs } srs_assert(digest != NULL); - SrsAutoFree(char, digest, true); + SrsAutoFree(char, digest); if (schema == srs_schema0) { memcpy(block1.digest.digest, digest, 32); @@ -837,7 +837,7 @@ namespace srs } srs_assert(c1_digest != NULL); - SrsAutoFree(char, c1_digest, true); + SrsAutoFree(char, c1_digest); if (schema == srs_schema0) { is_valid = srs_bytes_equals(block1.digest.digest, c1_digest, 32); @@ -861,7 +861,7 @@ namespace srs } srs_assert(s1_digest != NULL); - SrsAutoFree(char, s1_digest, true); + SrsAutoFree(char, s1_digest); if (schema == srs_schema0) { is_valid = srs_bytes_equals(block1.digest.digest, s1_digest, 32); @@ -917,7 +917,7 @@ namespace srs srs_verbose("calc s1 digest success."); srs_assert(s1_digest != NULL); - SrsAutoFree(char, s1_digest, true); + SrsAutoFree(char, s1_digest); if (schema == srs_schema0) { memcpy(block1.digest.digest, s1_digest, 32); @@ -944,7 +944,7 @@ namespace srs } srs_assert(c1s1_joined_bytes != NULL); - SrsAutoFree(char, c1s1_joined_bytes, true); + SrsAutoFree(char, c1s1_joined_bytes); digest = new char[OpensslHashSize]; if ((ret = openssl_HMACsha256(c1s1_joined_bytes, 1536 - 32, SrsGenuineFMSKey, 36, digest)) != ERROR_SUCCESS) { @@ -971,7 +971,7 @@ namespace srs } srs_assert(c1s1_joined_bytes != NULL); - SrsAutoFree(char, c1s1_joined_bytes, true); + SrsAutoFree(char, c1s1_joined_bytes); digest = new char[OpensslHashSize]; if ((ret = openssl_HMACsha256(c1s1_joined_bytes, 1536 - 32, SrsGenuineFPKey, 30, digest)) != ERROR_SUCCESS) { diff --git a/trunk/src/rtmp/srs_protocol_rtmp.cpp b/trunk/src/rtmp/srs_protocol_rtmp.cpp index c4c8a3a38..5c0ecb3d1 100644 --- a/trunk/src/rtmp/srs_protocol_rtmp.cpp +++ b/trunk/src/rtmp/srs_protocol_rtmp.cpp @@ -490,8 +490,8 @@ int SrsRtmpClient::connect_app(string app, string tc_url) srs_error("expect connect app response message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsConnectAppResPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsConnectAppResPacket, pkt); srs_info("get connect app response message"); return ret; @@ -517,8 +517,8 @@ int SrsRtmpClient::create_stream(int& stream_id) srs_error("expect create stream response message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsCreateStreamResPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsCreateStreamResPacket, pkt); srs_info("get create stream response message"); stream_id = (int)pkt->stream_id; @@ -651,8 +651,8 @@ int SrsRtmpClient::fmle_publish(string stream, int& stream_id) srs_error("expect create stream response message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsCreateStreamResPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsCreateStreamResPacket, pkt); srs_info("get create stream response message"); stream_id = (int)pkt->stream_id; @@ -772,8 +772,8 @@ int SrsRtmpServer::connect_app(SrsRequest* req) srs_error("expect connect app message failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsConnectAppPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsConnectAppPacket, pkt); srs_info("get connect app message"); SrsAmf0Any* prop = NULL; @@ -922,7 +922,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string& return ret; } - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { srs_trace("identify ignore messages except " @@ -936,7 +936,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string& return ret; } - SrsAutoFree(SrsPacket, pkt, false); + SrsAutoFree(SrsPacket, pkt); if (dynamic_cast(pkt)) { srs_info("identify client by create stream, play or flash publish."); @@ -1128,8 +1128,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) } srs_info("recv FCPublish request message success."); - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsFMLEStartPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsFMLEStartPacket, pkt); fc_publish_tid = pkt->transaction_id; } @@ -1154,8 +1154,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) } srs_info("recv createStream request message success."); - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsCreateStreamPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsCreateStreamPacket, pkt); create_stream_tid = pkt->transaction_id; } @@ -1179,8 +1179,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) } srs_info("recv publish request message success."); - SrsAutoFree(SrsMessage, msg, false); - SrsAutoFree(SrsPublishPacket, pkt, false); + SrsAutoFree(SrsMessage, msg); + SrsAutoFree(SrsPublishPacket, pkt); } // publish response onFCPublish(NetStream.Publish.Start) if (true) { @@ -1310,7 +1310,7 @@ int SrsRtmpServer::identify_create_stream_client(SrsCreateStreamPacket* req, int return ret; } - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); if (!msg->header.is_amf0_command() && !msg->header.is_amf3_command()) { srs_trace("identify ignore messages except " @@ -1324,7 +1324,7 @@ int SrsRtmpServer::identify_create_stream_client(SrsCreateStreamPacket* req, int return ret; } - SrsAutoFree(SrsPacket, pkt, false); + SrsAutoFree(SrsPacket, pkt); if (dynamic_cast(pkt)) { srs_info("level1 identify client by play."); diff --git a/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp b/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp index a8b2581f7..cdd40f922 100644 --- a/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp +++ b/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp @@ -442,7 +442,7 @@ int SrsProtocol::do_send_and_free_message(SrsMessage* msg, SrsPacket* packet) // always free msg. srs_assert(msg); - SrsAutoFree(SrsMessage, msg, false); + SrsAutoFree(SrsMessage, msg); // we donot use the complex basic header, // ensure the basic header is 1bytes. @@ -735,7 +735,7 @@ int SrsProtocol::send_and_free_packet(SrsPacket* packet, int stream_id) int ret = ERROR_SUCCESS; srs_assert(packet); - SrsAutoFree(SrsPacket, packet, false); + SrsAutoFree(SrsPacket, packet); int size = 0; char* payload = NULL; @@ -1274,7 +1274,7 @@ int SrsProtocol::on_recv_message(SrsMessage* msg) srs_assert(packet); // always free the packet. - SrsAutoFree(SrsPacket, packet, false); + SrsAutoFree(SrsPacket, packet); switch (msg->header.message_type) { case RTMP_MSG_WindowAcknowledgementSize: { @@ -2584,7 +2584,7 @@ int SrsPlayPacket::decode(SrsStream* stream) srs_error("amf0 read play reset marker failed. ret=%d", ret); return ret; } - SrsAutoFree(SrsAmf0Any, reset_value, false); + SrsAutoFree(SrsAmf0Any, reset_value); if (reset_value) { // check if the value is bool or number @@ -3160,7 +3160,7 @@ int SrsOnMetaDataPacket::decode(SrsStream* stream) return ret; } - SrsAutoFree(SrsAmf0Any, any, false); + SrsAutoFree(SrsAmf0Any, any); if (any->is_ecma_array()) { SrsAmf0EcmaArray* arr = any->to_ecma_array(); diff --git a/trunk/src/utest/srs_utest_amf0.cpp b/trunk/src/utest/srs_utest_amf0.cpp index b89890fc8..69576b89a 100644 --- a/trunk/src/utest/srs_utest_amf0.cpp +++ b/trunk/src/utest/srs_utest_amf0.cpp @@ -52,13 +52,13 @@ VOID TEST(AMF0Test, ScenarioMain) // version: string // srs_sig: string SrsAmf0Object* props = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, props, false); + SrsAutoFree(SrsAmf0Object, props); props->set("fmsVer", SrsAmf0Any::str("FMS/3,5,3,888")); props->set("capabilities", SrsAmf0Any::number(253)); props->set("mode", SrsAmf0Any::number(123)); SrsAmf0Object* info = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, info, false); + SrsAutoFree(SrsAmf0Object, info); info->set("level", SrsAmf0Any::str("info")); info->set("code", SrsAmf0Any::str("NetStream.Connnect.Success")); info->set("descrption", SrsAmf0Any::str("connected")); @@ -85,7 +85,7 @@ VOID TEST(AMF0Test, ScenarioMain) EXPECT_EQ(0x03, bytes[0]); EXPECT_EQ(0x09, bytes[nb_bytes - 1]); } - SrsAutoFree(char, bytes, true); + SrsAutoFree(char, bytes); // decoding amf0 object from bytes // when user know the schema @@ -100,12 +100,12 @@ VOID TEST(AMF0Test, ScenarioMain) // if user know the schema, for instance, it's an amf0 object, // user can use specified object to decoding. SrsAmf0Object* props = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, props, false); + SrsAutoFree(SrsAmf0Object, props); EXPECT_EQ(ERROR_SUCCESS, props->read(&s)); // user can use specified object to decoding. SrsAmf0Object* info = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, info, false); + SrsAutoFree(SrsAmf0Object, info); EXPECT_EQ(ERROR_SUCCESS, info->read(&s)); // use the decoded data. @@ -150,7 +150,7 @@ VOID TEST(AMF0Test, ScenarioMain) // decoding a amf0 any, for user donot know SrsAmf0Any* any = NULL; EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &any)); - SrsAutoFree(SrsAmf0Any, any, false); + SrsAutoFree(SrsAmf0Any, any); // for amf0 object if (any->is_object()) { @@ -192,7 +192,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); EXPECT_EQ(size, SrsAmf0Size::object(o)); } @@ -200,7 +200,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -210,7 +210,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); o->set("age", SrsAmf0Any::number(9)); @@ -220,7 +220,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); o->set("email", SrsAmf0Any::null()); @@ -230,7 +230,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); o->set("email", SrsAmf0Any::undefined()); @@ -240,7 +240,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); o->set("sex", SrsAmf0Any::boolean(true)); @@ -252,7 +252,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); EXPECT_EQ(size, SrsAmf0Size::ecma_array(o)); } @@ -260,7 +260,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -270,7 +270,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); o->set("age", SrsAmf0Any::number(9)); @@ -280,7 +280,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); o->set("email", SrsAmf0Any::null()); @@ -290,7 +290,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); o->set("email", SrsAmf0Any::undefined()); @@ -300,7 +300,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); o->set("sex", SrsAmf0Any::boolean(true)); @@ -312,7 +312,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -327,7 +327,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -349,7 +349,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -364,7 +364,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -386,7 +386,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+3; SrsAmf0Object* o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -408,7 +408,7 @@ VOID TEST(AMF0Test, ApiSize) if (true) { int size = 1+4+3; SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); o->set("name", SrsAmf0Any::str("winlin")); @@ -434,14 +434,14 @@ VOID TEST(AMF0Test, ApiAnyElem) // string if (true) { o = SrsAmf0Any::str(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_string()); EXPECT_STREQ("", o->to_str().c_str()); } if (true) { o = SrsAmf0Any::str("winlin"); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_string()); EXPECT_STREQ("winlin", o->to_str().c_str()); @@ -450,21 +450,21 @@ VOID TEST(AMF0Test, ApiAnyElem) // bool if (true) { o = SrsAmf0Any::boolean(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_boolean()); EXPECT_FALSE(o->to_boolean()); } if (true) { o = SrsAmf0Any::boolean(false); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_boolean()); EXPECT_FALSE(o->to_boolean()); } if (true) { o = SrsAmf0Any::boolean(true); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_boolean()); EXPECT_TRUE(o->to_boolean()); @@ -473,21 +473,21 @@ VOID TEST(AMF0Test, ApiAnyElem) // number if (true) { o = SrsAmf0Any::number(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_number()); EXPECT_DOUBLE_EQ(0, o->to_number()); } if (true) { o = SrsAmf0Any::number(100); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_number()); EXPECT_DOUBLE_EQ(100, o->to_number()); } if (true) { o = SrsAmf0Any::number(-100); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_number()); EXPECT_DOUBLE_EQ(-100, o->to_number()); @@ -496,7 +496,7 @@ VOID TEST(AMF0Test, ApiAnyElem) // null if (true) { o = SrsAmf0Any::null(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_null()); } @@ -504,7 +504,7 @@ VOID TEST(AMF0Test, ApiAnyElem) // undefined if (true) { o = SrsAmf0Any::undefined(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); ASSERT_TRUE(NULL != o); EXPECT_TRUE(o->is_undefined()); } @@ -525,7 +525,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.current()[2] = 0x09; o = SrsAmf0Any::object_eof(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->read(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -539,7 +539,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::object_eof(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -554,7 +554,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::str("winlin"); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -577,7 +577,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::number(10); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -596,7 +596,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::boolean(true); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -613,7 +613,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::boolean(false); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -632,7 +632,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::null(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -651,7 +651,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::undefined(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -670,7 +670,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::str("winlin"); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -680,7 +680,7 @@ VOID TEST(AMF0Test, ApiAnyIO) SrsAmf0Any* po = NULL; EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); ASSERT_TRUE(NULL != po); - SrsAutoFree(SrsAmf0Any, po, false); + SrsAutoFree(SrsAmf0Any, po); ASSERT_TRUE(po->is_string()); EXPECT_STREQ("winlin", po->to_str().c_str()); } @@ -690,7 +690,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::number(10); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -700,7 +700,7 @@ VOID TEST(AMF0Test, ApiAnyIO) SrsAmf0Any* po = NULL; EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); ASSERT_TRUE(NULL != po); - SrsAutoFree(SrsAmf0Any, po, false); + SrsAutoFree(SrsAmf0Any, po); ASSERT_TRUE(po->is_number()); EXPECT_DOUBLE_EQ(10, po->to_number()); } @@ -710,7 +710,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::boolean(true); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -720,7 +720,7 @@ VOID TEST(AMF0Test, ApiAnyIO) SrsAmf0Any* po = NULL; EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); ASSERT_TRUE(NULL != po); - SrsAutoFree(SrsAmf0Any, po, false); + SrsAutoFree(SrsAmf0Any, po); ASSERT_TRUE(po->is_boolean()); EXPECT_TRUE(po->to_boolean()); } @@ -730,7 +730,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::null(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -740,7 +740,7 @@ VOID TEST(AMF0Test, ApiAnyIO) SrsAmf0Any* po = NULL; EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); ASSERT_TRUE(NULL != po); - SrsAutoFree(SrsAmf0Any, po, false); + SrsAutoFree(SrsAmf0Any, po); ASSERT_TRUE(po->is_null()); } @@ -749,7 +749,7 @@ VOID TEST(AMF0Test, ApiAnyIO) s.reset(); o = SrsAmf0Any::undefined(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(o->total_size(), s.pos()); @@ -759,7 +759,7 @@ VOID TEST(AMF0Test, ApiAnyIO) SrsAmf0Any* po = NULL; EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po)); ASSERT_TRUE(NULL != po); - SrsAutoFree(SrsAmf0Any, po, false); + SrsAutoFree(SrsAmf0Any, po); ASSERT_TRUE(po->is_undefined()); } @@ -841,44 +841,44 @@ VOID TEST(AMF0Test, ApiAnyAssert) // any convert if (true) { o = SrsAmf0Any::str(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_TRUE(o->is_string()); } if (true) { o = SrsAmf0Any::number(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_TRUE(o->is_number()); } if (true) { o = SrsAmf0Any::boolean(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_TRUE(o->is_boolean()); } if (true) { o = SrsAmf0Any::null(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_TRUE(o->is_null()); } if (true) { o = SrsAmf0Any::undefined(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_TRUE(o->is_undefined()); } if (true) { o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_TRUE(o->is_object()); } if (true) { o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); EXPECT_TRUE(o->is_ecma_array()); } // empty object if (true) { o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); s.reset(); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(1+3, s.pos()); @@ -887,7 +887,7 @@ VOID TEST(AMF0Test, ApiAnyAssert) // empty ecma array if (true) { o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0Any, o, false); + SrsAutoFree(SrsAmf0Any, o); s.reset(); EXPECT_EQ(ERROR_SUCCESS, o->write(&s)); EXPECT_EQ(1+4+3, s.pos()); @@ -901,7 +901,7 @@ VOID TEST(AMF0Test, ApiObjectProps) // get/set property if (true) { o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); EXPECT_TRUE(NULL == o->get_property("name")); @@ -917,7 +917,7 @@ VOID TEST(AMF0Test, ApiObjectProps) // index property if (true) { o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); o->set("name", SrsAmf0Any::str("winlin")); EXPECT_STREQ("name", o->key_at(0).c_str()); @@ -937,7 +937,7 @@ VOID TEST(AMF0Test, ApiObjectProps) // ensure property if (true) { o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); EXPECT_TRUE(NULL == o->ensure_property_string("name")); EXPECT_TRUE(NULL == o->ensure_property_number("age")); @@ -957,7 +957,7 @@ VOID TEST(AMF0Test, ApiObjectProps) // count if (true) { o = SrsAmf0Any::object(); - SrsAutoFree(SrsAmf0Object, o, false); + SrsAutoFree(SrsAmf0Object, o); EXPECT_EQ(0, o->count()); @@ -979,7 +979,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) // get/set property if (true) { o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); EXPECT_TRUE(NULL == o->get_property("name")); @@ -995,7 +995,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) // index property if (true) { o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); o->set("name", SrsAmf0Any::str("winlin")); EXPECT_STREQ("name", o->key_at(0).c_str()); @@ -1015,7 +1015,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) // ensure property if (true) { o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); EXPECT_TRUE(NULL == o->ensure_property_string("name")); EXPECT_TRUE(NULL == o->ensure_property_number("age")); @@ -1035,7 +1035,7 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps) // count if (true) { o = SrsAmf0Any::ecma_array(); - SrsAutoFree(SrsAmf0EcmaArray, o, false); + SrsAutoFree(SrsAmf0EcmaArray, o); EXPECT_EQ(0, o->count()); diff --git a/trunk/src/utest/srs_utest_handshake.cpp b/trunk/src/utest/srs_utest_handshake.cpp index a72e15255..39cfe1d28 100644 --- a/trunk/src/utest/srs_utest_handshake.cpp +++ b/trunk/src/utest/srs_utest_handshake.cpp @@ -115,7 +115,7 @@ VOID TEST(HandshakeTest, VerifyFPC0C1) // manually validate the c1 // @see: calc_c1_digest char* c1s1_joined_bytes = srs_bytes_join_schema0(c1.time, c1.version, &c1.block0.key, &c1.block1.digest); - SrsAutoFree(char, c1s1_joined_bytes, true); + SrsAutoFree(char, c1s1_joined_bytes); bool is_valid; ASSERT_EQ(ERROR_SUCCESS, c1.c1_validate_digest(is_valid));