From 1c678a1b6267a036ce61d23f8c3343517d6a303a Mon Sep 17 00:00:00 2001 From: MacroFake Date: Mon, 22 Aug 2022 08:26:11 +0200 Subject: [PATCH] Merge bitcoin/bitcoin#25888: refactor: use `strprintf` for creating unknown-service-flag string 706c8e096978b694fb56dee9e8ed8f55373ad5a0 refactor: use `strprintf` for creating unknown-service-flag string (Sebastian Falbesoner) Pull request description: No need to use a stringstream here. The trivial change can be verified by running the functional test `rpc_net.py`: https://github.com/bitcoin/bitcoin/blob/c73c8d53fe27956faacb3e8ca0e94adf071de6ec/test/functional/rpc_net.py#L181-L184 As far as I could tell, this is the only instace left where we used `std::ostringstream` for the creation of simple strings (in `FormatSubVersion` using a stream makes sense since the number of placeholders is not constant). ACKs for top commit: kristapsk: ACK 706c8e096978b694fb56dee9e8ed8f55373ad5a0 Tree-SHA512: 069cea29aef03996ae16a0dc3ed87b1b2cf2ab0bf5987c225b10da12d0f4b62b7c3faf3a169c0b912eb2ad60c6ea0a09a622be7eaadad78cee0463ef4ffc0e19 --- src/protocol.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index a73621f7e4..b5ddcb3dfb 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -349,12 +349,7 @@ static std::string serviceFlagToStr(size_t bit) // Not using default, so we get warned when a case is missing } - std::ostringstream stream; - stream.imbue(std::locale::classic()); - stream << "UNKNOWN["; - stream << "2^" << bit; - stream << "]"; - return stream.str(); + return strprintf("UNKNOWN[2^%u]", bit); } std::vector serviceFlagsToStr(uint64_t flags)