Pass std::string_view by value, fix dangling reference in ServerHandler

Agent-Logs-Url: https://github.com/XRPLF/rippled/sessions/3aef40d0-f51b-484c-a5d3-43dd37d6187f

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-10 17:53:48 +00:00
committed by GitHub
parent 40a5871c41
commit 243ca1bdec
6 changed files with 11 additions and 11 deletions

View File

@@ -182,7 +182,7 @@ split_commas(FwdIt first, FwdIt last)
template <class Result = std::vector<std::string>>
Result
split_commas(std::string_view const& s)
split_commas(std::string_view s)
{
return split_commas(s.begin(), s.end());
}

View File

@@ -8,12 +8,12 @@ namespace Json {
class Value;
using Output = std::function<void(std::string_view const&)>;
using Output = std::function<void(std::string_view)>;
inline Output
stringOutput(std::string& s)
{
return [&](std::string_view const& b) { s.append(b.data(), b.size()); };
return [&](std::string_view b) { s.append(b.data(), b.size()); };
}
/** Writes a minimal representation of a Json value to an Output in O(n) time.

View File

@@ -88,14 +88,14 @@ public:
}
void
output(std::string_view const& bytes)
output(std::string_view bytes)
{
markStarted();
output_(bytes);
}
void
stringOutput(std::string_view const& bytes)
stringOutput(std::string_view bytes)
{
markStarted();
std::size_t position = 0, writtenUntil = 0;

View File

@@ -56,7 +56,7 @@ to_string(ProtocolVersion const& p)
}
std::vector<ProtocolVersion>
parseProtocolVersions(std::string_view const& value)
parseProtocolVersions(std::string_view value)
{
static boost::regex const re(
"^" // start of line
@@ -126,7 +126,7 @@ negotiateProtocolVersion(std::vector<ProtocolVersion> const& versions)
}
std::optional<ProtocolVersion>
negotiateProtocolVersion(std::string_view const& versions)
negotiateProtocolVersion(std::string_view versions)
{
auto const them = parseProtocolVersions(versions);

View File

@@ -38,7 +38,7 @@ to_string(ProtocolVersion const& p);
no duplicates and will be sorted in ascending protocol order.
*/
std::vector<ProtocolVersion>
parseProtocolVersions(std::string_view const& s);
parseProtocolVersions(std::string_view s);
/** Given a list of supported protocol versions, choose the one we prefer. */
std::optional<ProtocolVersion>
@@ -46,7 +46,7 @@ negotiateProtocolVersion(std::vector<ProtocolVersion> const& versions);
/** Given a list of supported protocol versions, choose the one we prefer. */
std::optional<ProtocolVersion>
negotiateProtocolVersion(std::string_view const& versions);
negotiateProtocolVersion(std::string_view versions);
/** The list of all the protocol versions we support. */
std::string const&

View File

@@ -230,7 +230,7 @@ ServerHandler::onHandoff(
static inline Json::Output
makeOutput(Session& session)
{
return [&](std::string_view const& b) { session.write(b.data(), b.size()); };
return [&](std::string_view b) { session.write(b.data(), b.size()); };
}
static std::map<std::string, std::string>
@@ -535,7 +535,7 @@ ServerHandler::processSession(
auto const iter = session->request().find("X-User");
if (iter != session->request().end())
{
auto const val = iter->value();
auto const& val = iter->value();
return std::string_view(val.data(), val.size());
}
return std::string_view{};