diff --git a/3rd/msgpack/src/bindings.c b/3rd/msgpack/src/bindings.c index bfc0396b..d1951a81 100644 --- a/3rd/msgpack/src/bindings.c +++ b/3rd/msgpack/src/bindings.c @@ -111,9 +111,7 @@ static bool mpack_write_dict_kv(py_Ref k, py_Ref v, void* ctx) { } else { return TypeError("msgpack: key must be string or integer"); } - bool ok = py_to_mpack(v, writer); - if(!ok) mpack_write_nil(writer); - return ok; + return py_to_mpack(v, writer); } static bool py_to_mpack(py_Ref object, mpack_writer_t* writer) { @@ -154,7 +152,10 @@ static bool py_to_mpack(py_Ref object, mpack_writer_t* writer) { if(!ok) return false; break; } - default: return TypeError("msgpack: unsupported type '%t'", object->type); + default: { + mpack_write_nil(writer); + return TypeError("msgpack: unsupported type '%t'", object->type); + } } return true; }