From 8bbb0f47aece6f68aad53d4db17ddb175227bc43 Mon Sep 17 00:00:00 2001 From: Floris van Nee Date: Fri, 24 Apr 2020 19:49:50 +0200 Subject: [PATCH] Avoid infinite loop on to_dict() for RPC results --- capnp/lib/capnp.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/capnp/lib/capnp.pyx b/capnp/lib/capnp.pyx index b0d62a7..d7b0dfb 100644 --- a/capnp/lib/capnp.pyx +++ b/capnp/lib/capnp.pyx @@ -854,7 +854,7 @@ cdef _to_dict(msg, bint verbose, bint ordered): temp_list_rb = msg return [_to_dict(temp_list_rb._get(i), verbose, ordered) for i in range(len(msg))] - if msg_type is _DynamicStructBuilder: + if msg_type is _DynamicStructBuilder or isinstance(msg, _Request): temp_msg_b = msg if ordered: ret = _collections.OrderedDict() @@ -871,7 +871,7 @@ cdef _to_dict(msg, bint verbose, bint ordered): ret[field] = _to_dict(temp_msg_b._get(field), verbose, ordered) return ret - elif msg_type is _DynamicStructReader: + elif msg_type is _DynamicStructReader or isinstance(msg, _Response): temp_msg_r = msg if ordered: ret = _collections.OrderedDict()