diff --git a/src/peer_discovery.cpp b/src/peer_discovery.cpp index 7c584108197f8769b5ca75acd6e4f376ca697047..063a7d91f65f1ce8429d1f2f8251692af19476ca 100644 --- a/src/peer_discovery.cpp +++ b/src/peer_discovery.cpp @@ -162,7 +162,7 @@ PeerDiscovery::recvFrom(size_t &buf_size) { sockaddr_storage storeage_recv; socklen_t sa_len = sizeof(storeage_recv); - char *recv = new char[1024]; + char recv[1024]; ssize_t nbytes = recvfrom( sockfd_, @@ -179,7 +179,6 @@ PeerDiscovery::recvFrom(size_t &buf_size) rbuf_.write(recv,nbytes); buf_size = nbytes; SockAddr ret {storeage_recv, sa_len}; - delete []recv; return ret; } @@ -242,7 +241,7 @@ PeerDiscovery::listenerpack_thread() callback->second(std::move(o.val), std::move(from)); } } - rbuf_.release(); + ::free(rbuf_.release()); } } if (stop_readfd != -1) @@ -269,7 +268,7 @@ void PeerDiscovery::startPublish(const std::string &type, const msgpack::sbuffer pack_buf_c.write(pack_buf.data(),pack_buf.size()); std::unique_lock<std::mutex> lck(mtx_); - sbuf_.release(); + ::free(sbuf_.release()); messages_[type] = std::move(pack_buf_c); msgpack::packer<msgpack::sbuffer> pk(&sbuf_); pk.pack_map(messages_.size()); @@ -318,7 +317,7 @@ PeerDiscovery::stopPublish(const std::string &type) { { std::unique_lock<std::mutex> lck(mtx_); - sbuf_.release(); + ::free(sbuf_.release()); auto it = messages_.find(type); if(it != messages_.end()){ messages_.erase(it);