mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibHTTP: Avoid implicitly copying ByteBuffer
This commit is contained in:
parent
d78365f785
commit
f59f7674c8
Notes:
sideshowbarker
2024-07-17 23:04:19 +09:00
Author: https://github.com/BenWiederhake Commit: https://github.com/SerenityOS/serenity/commit/f59f7674c8d Pull-request: https://github.com/SerenityOS/serenity/pull/11142 Reviewed-by: https://github.com/IdanHo
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue