mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
merge srs2, use srs_freepa for array
This commit is contained in:
parent
cef1ae5a8e
commit
8cec06e898
16 changed files with 69 additions and 65 deletions
|
@ -207,7 +207,7 @@ int SrsDynamicHttpConn::do_proxy(ISrsHttpResponseReader* rr, SrsFlvDecoder* dec)
|
|||
|
||||
char* data = new char[size];
|
||||
if ((ret = dec->read_tag_data(data, size)) != ERROR_SUCCESS) {
|
||||
srs_freep(data);
|
||||
srs_freepa(data);
|
||||
if (!srs_is_client_gracefully_close(ret)) {
|
||||
srs_error("flv: proxy tag data failed. ret=%d", ret);
|
||||
}
|
||||
|
|
|
@ -127,7 +127,7 @@ namespace _srs_internal
|
|||
|
||||
SrsConfigBuffer::~SrsConfigBuffer()
|
||||
{
|
||||
srs_freep(start);
|
||||
srs_freepa(start);
|
||||
}
|
||||
|
||||
int SrsConfigBuffer::fullfill(const char* filename)
|
||||
|
@ -146,7 +146,7 @@ namespace _srs_internal
|
|||
int filesize = (int)reader.filesize();
|
||||
|
||||
// create buffer
|
||||
srs_freep(start);
|
||||
srs_freepa(start);
|
||||
pos = last = start = new char[filesize];
|
||||
end = start + filesize;
|
||||
|
||||
|
@ -1091,7 +1091,7 @@ int SrsConfDirective::read_token(SrsConfigBuffer* buffer, vector<string>& args,
|
|||
if (!word_str.empty()) {
|
||||
args.push_back(word_str);
|
||||
}
|
||||
srs_freep(aword);
|
||||
srs_freepa(aword);
|
||||
|
||||
if (ch == ';') {
|
||||
return ERROR_SYSTEM_CONFIG_DIRECTIVE;
|
||||
|
@ -6833,4 +6833,3 @@ SrsConfDirective* SrsConfig::get_stats_disk_device()
|
|||
|
||||
return conf;
|
||||
}
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ SrsHttpResponseWriter::SrsHttpResponseWriter(SrsStSocket* io)
|
|||
SrsHttpResponseWriter::~SrsHttpResponseWriter()
|
||||
{
|
||||
srs_freep(hdr);
|
||||
srs_freep(iovss_cache);
|
||||
srs_freepa(iovss_cache);
|
||||
}
|
||||
|
||||
int SrsHttpResponseWriter::final_request()
|
||||
|
@ -191,7 +191,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite)
|
|||
int nb_iovss = 3 + iovcnt;
|
||||
iovec* iovss = iovss_cache;
|
||||
if (nb_iovss_cache < nb_iovss) {
|
||||
srs_freep(iovss_cache);
|
||||
srs_freepa(iovss_cache);
|
||||
nb_iovss_cache = nb_iovss;
|
||||
iovss = iovss_cache = new iovec[nb_iovss];
|
||||
}
|
||||
|
@ -509,7 +509,7 @@ SrsHttpMessage::~SrsHttpMessage()
|
|||
{
|
||||
srs_freep(_body);
|
||||
srs_freep(_uri);
|
||||
srs_freep(_http_ts_send_buffer);
|
||||
srs_freepa(_http_ts_send_buffer);
|
||||
}
|
||||
|
||||
int SrsHttpMessage::update(string url, bool allow_jsonp, http_parser* header, SrsFastStream* body, vector<SrsHttpHeaderField>& headers)
|
||||
|
|
|
@ -94,7 +94,7 @@ SrsUdpListener::~SrsUdpListener()
|
|||
// close it manually.
|
||||
close(_fd);
|
||||
|
||||
srs_freep(buf);
|
||||
srs_freepa(buf);
|
||||
}
|
||||
|
||||
int SrsUdpListener::fd()
|
||||
|
|
|
@ -91,7 +91,7 @@ SrsFastLog::SrsFastLog()
|
|||
|
||||
SrsFastLog::~SrsFastLog()
|
||||
{
|
||||
srs_freep(log_data);
|
||||
srs_freepa(log_data);
|
||||
|
||||
if (fd > 0) {
|
||||
::close(fd);
|
||||
|
|
|
@ -162,7 +162,7 @@ SrsFastVector::SrsFastVector()
|
|||
SrsFastVector::~SrsFastVector()
|
||||
{
|
||||
free();
|
||||
srs_freep(msgs);
|
||||
srs_freepa(msgs);
|
||||
}
|
||||
|
||||
int SrsFastVector::size()
|
||||
|
@ -221,7 +221,7 @@ void SrsFastVector::push_back(SrsSharedPtrMessage* msg)
|
|||
srs_warn("fast vector incrase %d=>%d", nb_msgs, size);
|
||||
|
||||
// use new array.
|
||||
srs_freep(msgs);
|
||||
srs_freepa(msgs);
|
||||
msgs = buf;
|
||||
nb_msgs = size;
|
||||
}
|
||||
|
|
|
@ -103,9 +103,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
p = NULL; \
|
||||
} \
|
||||
(void)0
|
||||
// sometimes, the freepa is useless,
|
||||
// it's recomments to free each elem explicit.
|
||||
// so we remove the srs_freepa utility.
|
||||
// please use the freepa(T[]) to free an array,
|
||||
// or the behavior is undefined.
|
||||
#define srs_freepa(pa) \
|
||||
if (pa) { \
|
||||
delete[] pa; \
|
||||
pa = NULL; \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
/**
|
||||
* disable copy constructor of class,
|
||||
|
|
|
@ -419,12 +419,12 @@ SrsAvcAacCodec::SrsAvcAacCodec()
|
|||
|
||||
SrsAvcAacCodec::~SrsAvcAacCodec()
|
||||
{
|
||||
srs_freep(avc_extra_data);
|
||||
srs_freep(aac_extra_data);
|
||||
srs_freepa(avc_extra_data);
|
||||
srs_freepa(aac_extra_data);
|
||||
|
||||
srs_freep(stream);
|
||||
srs_freep(sequenceParameterSetNALUnit);
|
||||
srs_freep(pictureParameterSetNALUnit);
|
||||
srs_freepa(sequenceParameterSetNALUnit);
|
||||
srs_freepa(pictureParameterSetNALUnit);
|
||||
}
|
||||
|
||||
bool SrsAvcAacCodec::is_avc_codec_ok()
|
||||
|
@ -500,7 +500,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample
|
|||
// 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33.
|
||||
aac_extra_size = stream->size() - stream->pos();
|
||||
if (aac_extra_size > 0) {
|
||||
srs_freep(aac_extra_data);
|
||||
srs_freepa(aac_extra_data);
|
||||
aac_extra_data = new char[aac_extra_size];
|
||||
memcpy(aac_extra_data, stream->data() + stream->pos(), aac_extra_size);
|
||||
|
||||
|
@ -764,7 +764,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream)
|
|||
// 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16
|
||||
avc_extra_size = stream->size() - stream->pos();
|
||||
if (avc_extra_size > 0) {
|
||||
srs_freep(avc_extra_data);
|
||||
srs_freepa(avc_extra_data);
|
||||
avc_extra_data = new char[avc_extra_size];
|
||||
memcpy(avc_extra_data, stream->data() + stream->pos(), avc_extra_size);
|
||||
}
|
||||
|
@ -825,7 +825,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream)
|
|||
return ret;
|
||||
}
|
||||
if (sequenceParameterSetLength > 0) {
|
||||
srs_freep(sequenceParameterSetNALUnit);
|
||||
srs_freepa(sequenceParameterSetNALUnit);
|
||||
sequenceParameterSetNALUnit = new char[sequenceParameterSetLength];
|
||||
stream->read_bytes(sequenceParameterSetNALUnit, sequenceParameterSetLength);
|
||||
}
|
||||
|
@ -854,7 +854,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream)
|
|||
return ret;
|
||||
}
|
||||
if (pictureParameterSetLength > 0) {
|
||||
srs_freep(pictureParameterSetNALUnit);
|
||||
srs_freepa(pictureParameterSetNALUnit);
|
||||
pictureParameterSetNALUnit = new char[pictureParameterSetLength];
|
||||
stream->read_bytes(pictureParameterSetNALUnit, pictureParameterSetLength);
|
||||
}
|
||||
|
|
|
@ -163,12 +163,12 @@ SrsCommonMessage::~SrsCommonMessage()
|
|||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
srs_memory_unwatch(payload);
|
||||
#endif
|
||||
srs_freep(payload);
|
||||
srs_freepa(payload);
|
||||
}
|
||||
|
||||
void SrsCommonMessage::create_payload(int size)
|
||||
{
|
||||
srs_freep(payload);
|
||||
srs_freepa(payload);
|
||||
|
||||
payload = new char[size];
|
||||
srs_verbose("create payload for RTMP message. size=%d", size);
|
||||
|
@ -190,7 +190,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
|
|||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
srs_memory_unwatch(payload);
|
||||
#endif
|
||||
srs_freep(payload);
|
||||
srs_freepa(payload);
|
||||
}
|
||||
|
||||
SrsSharedPtrMessage::SrsSharedPtrMessage()
|
||||
|
@ -350,9 +350,9 @@ SrsFlvEncoder::~SrsFlvEncoder()
|
|||
srs_freep(tag_stream);
|
||||
|
||||
#ifdef SRS_PERF_FAST_FLV_ENCODER
|
||||
srs_freep(tag_headers);
|
||||
srs_freep(iovss_cache);
|
||||
srs_freep(ppts);
|
||||
srs_freepa(tag_headers);
|
||||
srs_freepa(iovss_cache);
|
||||
srs_freepa(ppts);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -489,7 +489,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count)
|
|||
int nb_iovss = 3 * count;
|
||||
iovec* iovss = iovss_cache;
|
||||
if (nb_iovss_cache < nb_iovss) {
|
||||
srs_freep(iovss_cache);
|
||||
srs_freepa(iovss_cache);
|
||||
|
||||
nb_iovss_cache = nb_iovss;
|
||||
iovss = iovss_cache = new iovec[nb_iovss];
|
||||
|
@ -498,7 +498,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count)
|
|||
// realloc the tag headers.
|
||||
char* cache = tag_headers;
|
||||
if (nb_tag_headers < count) {
|
||||
srs_freep(tag_headers);
|
||||
srs_freepa(tag_headers);
|
||||
|
||||
nb_tag_headers = count;
|
||||
cache = tag_headers = new char[SRS_FLV_TAG_HEADER_SIZE * count];
|
||||
|
@ -507,7 +507,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count)
|
|||
// realloc the pts.
|
||||
char* pts = ppts;
|
||||
if (nb_ppts < count) {
|
||||
srs_freep(ppts);
|
||||
srs_freepa(ppts);
|
||||
|
||||
nb_ppts = count;
|
||||
pts = ppts = new char[SRS_FLV_PREVIOUS_TAG_SIZE * count];
|
||||
|
|
|
@ -927,7 +927,7 @@ SrsTsAdaptationField::SrsTsAdaptationField(SrsTsPacket* pkt)
|
|||
|
||||
SrsTsAdaptationField::~SrsTsAdaptationField()
|
||||
{
|
||||
srs_freep(transport_private_data);
|
||||
srs_freepa(transport_private_data);
|
||||
}
|
||||
|
||||
int SrsTsAdaptationField::decode(SrsBuffer* stream)
|
||||
|
@ -1052,7 +1052,7 @@ int SrsTsAdaptationField::decode(SrsBuffer* stream)
|
|||
srs_error("ts: demux af transport_private_data_flag failed. ret=%d", ret);
|
||||
return ret;
|
||||
}
|
||||
srs_freep(transport_private_data);
|
||||
srs_freepa(transport_private_data);
|
||||
transport_private_data = new char[transport_private_data_length];
|
||||
stream->read_bytes(transport_private_data, transport_private_data_length);
|
||||
}
|
||||
|
@ -1337,9 +1337,9 @@ SrsTsPayloadPES::SrsTsPayloadPES(SrsTsPacket* p) : SrsTsPayload(p)
|
|||
|
||||
SrsTsPayloadPES::~SrsTsPayloadPES()
|
||||
{
|
||||
srs_freep(PES_private_data);
|
||||
srs_freep(pack_field);
|
||||
srs_freep(PES_extension_field);
|
||||
srs_freepa(PES_private_data);
|
||||
srs_freepa(pack_field);
|
||||
srs_freepa(PES_extension_field);
|
||||
}
|
||||
|
||||
int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg)
|
||||
|
@ -1616,7 +1616,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg)
|
|||
|
||||
// 16B
|
||||
if (PES_private_data_flag) {
|
||||
srs_freep(PES_private_data);
|
||||
srs_freepa(PES_private_data);
|
||||
PES_private_data = new char[16];
|
||||
stream->read_bytes(PES_private_data, 16);
|
||||
}
|
||||
|
@ -1632,7 +1632,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg)
|
|||
srs_error("ts: demux PSE ext pack failed. ret=%d", ret);
|
||||
return ret;
|
||||
}
|
||||
srs_freep(pack_field);
|
||||
srs_freepa(pack_field);
|
||||
pack_field = new char[pack_field_length];
|
||||
stream->read_bytes(pack_field, pack_field_length);
|
||||
}
|
||||
|
@ -1670,7 +1670,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg)
|
|||
srs_error("ts: demux PSE ext field failed. ret=%d", ret);
|
||||
return ret;
|
||||
}
|
||||
srs_freep(PES_extension_field);
|
||||
srs_freepa(PES_extension_field);
|
||||
PES_extension_field = new char[PES_extension_field_length];
|
||||
stream->read_bytes(PES_extension_field, PES_extension_field_length);
|
||||
}
|
||||
|
@ -2433,7 +2433,7 @@ SrsTsPayloadPMTESInfo::SrsTsPayloadPMTESInfo(SrsTsStream st, int16_t epid)
|
|||
|
||||
SrsTsPayloadPMTESInfo::~SrsTsPayloadPMTESInfo()
|
||||
{
|
||||
srs_freep(ES_info);
|
||||
srs_freepa(ES_info);
|
||||
}
|
||||
|
||||
int SrsTsPayloadPMTESInfo::decode(SrsBuffer* stream)
|
||||
|
@ -2463,7 +2463,7 @@ int SrsTsPayloadPMTESInfo::decode(SrsBuffer* stream)
|
|||
srs_error("ts: demux PMT es info data failed. ret=%d", ret);
|
||||
return ret;
|
||||
}
|
||||
srs_freep(ES_info);
|
||||
srs_freepa(ES_info);
|
||||
ES_info = new char[ES_info_length];
|
||||
stream->read_bytes(ES_info, ES_info_length);
|
||||
}
|
||||
|
@ -2520,7 +2520,7 @@ SrsTsPayloadPMT::SrsTsPayloadPMT(SrsTsPacket* p) : SrsTsPayloadPSI(p)
|
|||
|
||||
SrsTsPayloadPMT::~SrsTsPayloadPMT()
|
||||
{
|
||||
srs_freep(program_info_desc);
|
||||
srs_freepa(program_info_desc);
|
||||
|
||||
std::vector<SrsTsPayloadPMTESInfo*>::iterator it;
|
||||
for (it = infos.begin(); it != infos.end(); ++it) {
|
||||
|
@ -2574,7 +2574,7 @@ int SrsTsPayloadPMT::psi_decode(SrsBuffer* stream)
|
|||
return ret;
|
||||
}
|
||||
|
||||
srs_freep(program_info_desc);
|
||||
srs_freepa(program_info_desc);
|
||||
program_info_desc = new char[program_info_length];
|
||||
stream->read_bytes(program_info_desc, program_info_length);
|
||||
}
|
||||
|
|
|
@ -2390,7 +2390,7 @@ int srs_human_print_rtmp_packet4(char type, u_int32_t timestamp, char* data, int
|
|||
|
||||
char* amf0_str = NULL;
|
||||
srs_human_raw("%s", srs_human_amf0_print(amf0, &amf0_str, NULL));
|
||||
srs_freep(amf0_str);
|
||||
srs_freepa(amf0_str);
|
||||
}
|
||||
} else {
|
||||
srs_human_trace("Rtmp packet id=%"PRId64"/%.1f/%.1f, type=%#x, dts=%d, pts=%d, ndiff=%d, diff=%d, size=%d",
|
||||
|
|
|
@ -768,7 +768,7 @@ ISrsHttpMessage::ISrsHttpMessage()
|
|||
|
||||
ISrsHttpMessage::~ISrsHttpMessage()
|
||||
{
|
||||
srs_freep(_http_ts_send_buffer);
|
||||
srs_freepa(_http_ts_send_buffer);
|
||||
}
|
||||
|
||||
char* ISrsHttpMessage::http_ts_send_buffer()
|
||||
|
|
|
@ -222,7 +222,7 @@ int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, in
|
|||
|
||||
// only when failed, we must free the data.
|
||||
if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) {
|
||||
srs_freep(data);
|
||||
srs_freepa(data);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -319,8 +319,8 @@ namespace _srs_internal
|
|||
|
||||
key_block::~key_block()
|
||||
{
|
||||
srs_freep(random0);
|
||||
srs_freep(random1);
|
||||
srs_freepa(random0);
|
||||
srs_freepa(random1);
|
||||
}
|
||||
|
||||
int key_block::parse(SrsBuffer* stream)
|
||||
|
@ -342,7 +342,7 @@ namespace _srs_internal
|
|||
|
||||
random0_size = valid_offset;
|
||||
if (random0_size > 0) {
|
||||
srs_freep(random0);
|
||||
srs_freepa(random0);
|
||||
random0 = new char[random0_size];
|
||||
stream->read_bytes(random0, random0_size);
|
||||
}
|
||||
|
@ -351,7 +351,7 @@ namespace _srs_internal
|
|||
|
||||
random1_size = 764 - valid_offset - 128 - 4;
|
||||
if (random1_size > 0) {
|
||||
srs_freep(random1);
|
||||
srs_freepa(random1);
|
||||
random1 = new char[random1_size];
|
||||
stream->read_bytes(random1, random1_size);
|
||||
}
|
||||
|
@ -401,8 +401,8 @@ namespace _srs_internal
|
|||
|
||||
digest_block::~digest_block()
|
||||
{
|
||||
srs_freep(random0);
|
||||
srs_freep(random1);
|
||||
srs_freepa(random0);
|
||||
srs_freepa(random1);
|
||||
}
|
||||
|
||||
int digest_block::parse(SrsBuffer* stream)
|
||||
|
@ -419,7 +419,7 @@ namespace _srs_internal
|
|||
|
||||
random0_size = valid_offset;
|
||||
if (random0_size > 0) {
|
||||
srs_freep(random0);
|
||||
srs_freepa(random0);
|
||||
random0 = new char[random0_size];
|
||||
stream->read_bytes(random0, random0_size);
|
||||
}
|
||||
|
@ -428,7 +428,7 @@ namespace _srs_internal
|
|||
|
||||
random1_size = 764 - 4 - valid_offset - 32;
|
||||
if (random1_size > 0) {
|
||||
srs_freep(random1);
|
||||
srs_freepa(random1);
|
||||
random1 = new char[random1_size];
|
||||
stream->read_bytes(random1, random1_size);
|
||||
}
|
||||
|
@ -592,7 +592,7 @@ namespace _srs_internal
|
|||
|
||||
c1_digest = new char[SRS_OpensslHashSize];
|
||||
if ((ret = openssl_HMACsha256(SrsGenuineFPKey, 30, c1s1_joined_bytes, 1536 - 32, c1_digest)) != ERROR_SUCCESS) {
|
||||
srs_freep(c1_digest);
|
||||
srs_freepa(c1_digest);
|
||||
srs_error("calc digest for c1 failed. ret=%d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
@ -620,7 +620,7 @@ namespace _srs_internal
|
|||
|
||||
s1_digest = new char[SRS_OpensslHashSize];
|
||||
if ((ret = openssl_HMACsha256(SrsGenuineFMSKey, 36, c1s1_joined_bytes, 1536 - 32, s1_digest)) != ERROR_SUCCESS) {
|
||||
srs_freep(s1_digest);
|
||||
srs_freepa(s1_digest);
|
||||
srs_error("calc digest for s1 failed. ret=%d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ SrsMessageArray::~SrsMessageArray()
|
|||
// we just free the msgs itself,
|
||||
// both delete and delete[] is ok,
|
||||
// for each msg in msgs is already freed by send_and_free_messages.
|
||||
srs_freep(msgs);
|
||||
srs_freepa(msgs);
|
||||
}
|
||||
|
||||
void SrsMessageArray::free(int count)
|
||||
|
|
|
@ -151,14 +151,14 @@ int SrsPacket::encode(int& psize, char*& ppayload)
|
|||
|
||||
if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) {
|
||||
srs_error("initialize the stream failed. ret=%d", ret);
|
||||
srs_freep(payload);
|
||||
srs_freepa(payload);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) {
|
||||
srs_error("encode the packet failed. ret=%d", ret);
|
||||
srs_freep(payload);
|
||||
srs_freepa(payload);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -279,7 +279,7 @@ SrsProtocol::~SrsProtocol()
|
|||
SrsChunkStream* cs = cs_cache[i];
|
||||
srs_freep(cs);
|
||||
}
|
||||
srs_freep(cs_cache);
|
||||
srs_freepa(cs_cache);
|
||||
}
|
||||
|
||||
void SrsProtocol::set_auto_response(bool v)
|
||||
|
@ -632,7 +632,7 @@ int SrsProtocol::do_send_and_free_packet(SrsPacket* packet, int stream_id)
|
|||
header.perfer_cid = packet->get_prefer_cid();
|
||||
|
||||
ret = do_simple_send(&header, payload, size);
|
||||
srs_freep(payload);
|
||||
srs_freepa(payload);
|
||||
if (ret == ERROR_SUCCESS) {
|
||||
ret = on_send_packet(&header, packet);
|
||||
}
|
||||
|
@ -1776,9 +1776,9 @@ SrsHandshakeBytes::SrsHandshakeBytes()
|
|||
|
||||
SrsHandshakeBytes::~SrsHandshakeBytes()
|
||||
{
|
||||
srs_freep(c0c1);
|
||||
srs_freep(s0s1s2);
|
||||
srs_freep(c2);
|
||||
srs_freepa(c0c1);
|
||||
srs_freepa(s0s1s2);
|
||||
srs_freepa(c2);
|
||||
}
|
||||
|
||||
int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue