amend pull request (#344) following the related discussion

There's a small problem remaining if assertions are disabled (with -DNDEBUG).
This commit is contained in:
NiteHawk
2015-08-17 21:49:03 +02:00
parent 871a796037
commit 1788d6ce01

View File

@@ -46,7 +46,8 @@ size_t receiver_to_unpacker(receiver* r, size_t request_size,
{ {
// make sure there's enough room, or expand the unpacker accordingly // make sure there's enough room, or expand the unpacker accordingly
if (msgpack_unpacker_buffer_capacity(unpacker) < request_size) { if (msgpack_unpacker_buffer_capacity(unpacker) < request_size) {
assert(msgpack_unpacker_reserve_buffer(unpacker, request_size)); bool expanded = msgpack_unpacker_reserve_buffer(unpacker, request_size);
assert(expanded);
} }
size_t recv_len = receiver_recv(r, msgpack_unpacker_buffer(unpacker), size_t recv_len = receiver_recv(r, msgpack_unpacker_buffer(unpacker),
request_size); request_size);
@@ -66,9 +67,9 @@ void unpack(receiver* r) {
int i = 0; int i = 0;
msgpack_unpacked_init(&result); msgpack_unpacked_init(&result);
while (true) {
recv_len = receiver_to_unpacker(r, EACH_RECV_SIZE, unp); recv_len = receiver_to_unpacker(r, EACH_RECV_SIZE, unp);
while (recv_len > 0) { if (recv_len == 0) break; // (reached end of input)
printf("receive count: %d %zd bytes received.\n", recv_count++, recv_len); printf("receive count: %d %zd bytes received.\n", recv_count++, recv_len);
ret = msgpack_unpacker_next(unp, &result); ret = msgpack_unpacker_next(unp, &result);
while (ret == MSGPACK_UNPACK_SUCCESS) { while (ret == MSGPACK_UNPACK_SUCCESS) {
@@ -89,7 +90,6 @@ void unpack(receiver* r) {
msgpack_unpacked_destroy(&result); msgpack_unpacked_destroy(&result);
return; return;
} }
recv_len = receiver_to_unpacker(r, EACH_RECV_SIZE, unp);
} }
msgpack_unpacked_destroy(&result); msgpack_unpacked_destroy(&result);
} }