Skip to content

Commit 1788d6c

Browse files
committed
amend pull request (#344) following the related discussion
There's a small problem remaining if assertions are disabled (with -DNDEBUG).
1 parent 871a796 commit 1788d6c

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

example/c/lib_buffer_unpack.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ size_t receiver_to_unpacker(receiver* r, size_t request_size,
4646
{
4747
// make sure there's enough room, or expand the unpacker accordingly
4848
if (msgpack_unpacker_buffer_capacity(unpacker) < request_size) {
49-
assert(msgpack_unpacker_reserve_buffer(unpacker, request_size));
49+
bool expanded = msgpack_unpacker_reserve_buffer(unpacker, request_size);
50+
assert(expanded);
5051
}
5152
size_t recv_len = receiver_recv(r, msgpack_unpacker_buffer(unpacker),
5253
request_size);
@@ -66,9 +67,9 @@ void unpack(receiver* r) {
6667
int i = 0;
6768

6869
msgpack_unpacked_init(&result);
69-
70-
recv_len = receiver_to_unpacker(r, EACH_RECV_SIZE, unp);
71-
while (recv_len > 0) {
70+
while (true) {
71+
recv_len = receiver_to_unpacker(r, EACH_RECV_SIZE, unp);
72+
if (recv_len == 0) break; // (reached end of input)
7273
printf("receive count: %d %zd bytes received.\n", recv_count++, recv_len);
7374
ret = msgpack_unpacker_next(unp, &result);
7475
while (ret == MSGPACK_UNPACK_SUCCESS) {
@@ -89,7 +90,6 @@ void unpack(receiver* r) {
8990
msgpack_unpacked_destroy(&result);
9091
return;
9192
}
92-
recv_len = receiver_to_unpacker(r, EACH_RECV_SIZE, unp);
9393
}
9494
msgpack_unpacked_destroy(&result);
9595
}

0 commit comments

Comments
 (0)