LibHTTP: Avoid implicitly copying ByteBuffer

This commit is contained in:
Ben Wiederhake 2021-11-28 23:00:52 +01:00 committed by Brian Gianforcaro
parent d78365f785
commit f59f7674c8
Notes: sideshowbarker 2024-07-17 23:04:19 +09:00
5 changed files with 10 additions and 10 deletions

View file

@ -41,8 +41,8 @@ protected:
virtual bool is_established() const override { return true; }
private:
explicit HttpJob(const HttpRequest& request, OutputStream& output_stream)
: Job(request, output_stream)
explicit HttpJob(HttpRequest&& request, OutputStream& output_stream)
: Job(move(request), output_stream)
{
}

View file

@ -45,8 +45,8 @@ protected:
virtual void read_while_data_available(Function<IterationDecision()>) override;
private:
explicit HttpsJob(const HttpRequest& request, OutputStream& output_stream, const Vector<Certificate>* override_certs = nullptr)
: Job(request, output_stream)
explicit HttpsJob(HttpRequest&& request, OutputStream& output_stream, const Vector<Certificate>* override_certs = nullptr)
: Job(move(request), output_stream)
, m_override_ca_certificates(override_certs)
{
}

View file

@ -40,7 +40,7 @@ static Optional<ByteBuffer> handle_content_encoding(const ByteBuffer& buf, const
dbgln(" Output size: {}", uncompressed.value().size());
}
return uncompressed.value();
return uncompressed.release_value();
} else if (content_encoding == "deflate") {
dbgln_if(JOB_DEBUG, "Job::handle_content_encoding: buf is deflate compressed!");
@ -66,15 +66,15 @@ static Optional<ByteBuffer> handle_content_encoding(const ByteBuffer& buf, const
dbgln(" Output size: {}", uncompressed.value().size());
}
return uncompressed.value();
return uncompressed.release_value();
}
return buf;
}
Job::Job(const HttpRequest& request, OutputStream& output_stream)
Job::Job(HttpRequest&& request, OutputStream& output_stream)
: Core::NetworkJob(output_stream)
, m_request(request)
, m_request(move(request))
{
}

View file

@ -18,7 +18,7 @@ namespace HTTP {
class Job : public Core::NetworkJob {
public:
explicit Job(const HttpRequest&, OutputStream&);
explicit Job(HttpRequest&&, OutputStream&);
virtual ~Job() override;
virtual void start(NonnullRefPtr<Core::Socket>) override = 0;

View file

@ -81,7 +81,7 @@ OwnPtr<Request> start_request(TBadgedProtocol&& protocol, ClientConnection& clie
auto output_stream = make<OutputFileStream>(pipe_result.value().write_fd);
output_stream->make_unbuffered();
auto job = TJob::construct(request, *output_stream);
auto job = TJob::construct(move(request), *output_stream);
auto protocol_request = TRequest::create_with_job(forward<TBadgedProtocol>(protocol), client, (TJob&)*job, move(output_stream));
protocol_request->set_request_fd(pipe_result.value().read_fd);