提交 f2a736ee 编写于 作者: Y youngwolf

Fix asserts in flexible_unpacker.

上级 385bdd1a
......@@ -233,7 +233,7 @@ public:
{
//length + msg
remain_len += bytes_transferred;
assert(remain_len <= std::max<size_t>(raw_buff.size(), big_msg.size()));
assert(remain_len <= (big_msg.empty() ? raw_buff.size() : big_msg.size()));
if (!big_msg.empty())
{
......@@ -292,7 +292,7 @@ public:
return 0;
auto data_len = remain_len + bytes_transferred;
assert(data_len <= cur_msg_len);
assert(data_len <= (big_msg.empty() ? raw_buff.size() : big_msg.size()));
if ((size_t) -1 == cur_msg_len && data_len >= ASCS_HEAD_LEN) //the msg's head been received
{
......@@ -313,7 +313,7 @@ public:
//if you introduce a ring buffer, then you will have the chance to provide a real scatter-gather buffer.
virtual typename super::buffer_type prepare_next_recv()
{
assert(remain_len < cur_msg_len);
assert(remain_len < (big_msg.empty() ? raw_buff.size() : big_msg.size()));
if (big_msg.empty())
return typename super::buffer_type(1, asio::buffer(raw_buff) + remain_len);
......@@ -322,7 +322,7 @@ public:
#elif ASIO_VERSION < 101100
virtual typename super::buffer_type prepare_next_recv()
{
assert(remain_len < cur_msg_len);
assert(remain_len < (big_msg.empty() ? raw_buff.size() : big_msg.size()));
if (big_msg.empty())
return asio::buffer(asio::buffer(raw_buff) + remain_len);
......@@ -331,7 +331,7 @@ public:
#else
virtual typename super::buffer_type prepare_next_recv()
{
assert(remain_len < cur_msg_len);
assert(remain_len < (big_msg.empty() ? raw_buff.size() : big_msg.size()));
if (big_msg.empty())
return asio::buffer(raw_buff) + remain_len;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册