@@ -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