From f5f2f91c6eb1602ee5f68a5aa720f140b1be72d4 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Wed, 22 Jun 2022 22:47:54 -0700 Subject: [PATCH] use iovec form of print_data --- src/PSOProtocol.cc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/PSOProtocol.cc b/src/PSOProtocol.cc index a8339242..ab0537b2 100644 --- a/src/PSOProtocol.cc +++ b/src/PSOProtocol.cc @@ -214,13 +214,10 @@ void print_received_command( header.set_flag(version, flag); header.set_size(version, size + header_size); - // TODO: This is unnecessarily slow. It'd be nice to have a print_data_v() so - // we don't have to copy data around here. - StringWriter w; - w.write(&header, header_size); - w.write(data, size); - - print_data(stderr, w.str()); + vector iovs; + iovs.emplace_back(iovec{.iov_base = &header, .iov_len = header_size}); + iovs.emplace_back(iovec{.iov_base = const_cast(data), .iov_len = size}); + print_data(stderr, iovs, 0, nullptr, PrintDataFlags::PRINT_ASCII | PrintDataFlags::DISABLE_COLOR); if (use_terminal_colors) { print_color_escape(stderr, TerminalFormat::NORMAL, TerminalFormat::END);