LibWeb: Remove unused VM from ReadLoopReadRequest

This commit is contained in:
Timothy Flynn 2025-04-29 15:11:48 -04:00 committed by Tim Flynn
commit 6cc5ac8f82
Notes: github-actions[bot] 2025-04-30 13:31:31 +00:00
2 changed files with 19 additions and 24 deletions

View file

@ -27,16 +27,6 @@ namespace Web::Streams {
GC_DEFINE_ALLOCATOR(ReadableStreamDefaultReader); GC_DEFINE_ALLOCATOR(ReadableStreamDefaultReader);
GC_DEFINE_ALLOCATOR(ReadLoopReadRequest); GC_DEFINE_ALLOCATOR(ReadLoopReadRequest);
void ReadLoopReadRequest::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_realm);
visitor.visit(m_reader);
visitor.visit(m_success_steps);
visitor.visit(m_failure_steps);
visitor.visit(m_chunk_steps);
}
// https://streams.spec.whatwg.org/#default-reader-constructor // https://streams.spec.whatwg.org/#default-reader-constructor
WebIDL::ExceptionOr<GC::Ref<ReadableStreamDefaultReader>> ReadableStreamDefaultReader::construct_impl(JS::Realm& realm, GC::Ref<ReadableStream> stream) WebIDL::ExceptionOr<GC::Ref<ReadableStreamDefaultReader>> ReadableStreamDefaultReader::construct_impl(JS::Realm& realm, GC::Ref<ReadableStream> stream)
{ {
@ -70,9 +60,8 @@ void ReadableStreamDefaultReader::visit_edges(Cell::Visitor& visitor)
} }
// https://streams.spec.whatwg.org/#read-loop // https://streams.spec.whatwg.org/#read-loop
ReadLoopReadRequest::ReadLoopReadRequest(JS::VM& vm, JS::Realm& realm, ReadableStreamDefaultReader& reader, GC::Ref<SuccessSteps> success_steps, GC::Ref<FailureSteps> failure_steps, GC::Ptr<ChunkSteps> chunk_steps) ReadLoopReadRequest::ReadLoopReadRequest(JS::Realm& realm, ReadableStreamDefaultReader& reader, GC::Ref<SuccessSteps> success_steps, GC::Ref<FailureSteps> failure_steps, GC::Ptr<ChunkSteps> chunk_steps)
: m_vm(vm) : m_realm(realm)
, m_realm(realm)
, m_reader(reader) , m_reader(reader)
, m_success_steps(success_steps) , m_success_steps(success_steps)
, m_failure_steps(failure_steps) , m_failure_steps(failure_steps)
@ -80,6 +69,16 @@ ReadLoopReadRequest::ReadLoopReadRequest(JS::VM& vm, JS::Realm& realm, ReadableS
{ {
} }
void ReadLoopReadRequest::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_realm);
visitor.visit(m_reader);
visitor.visit(m_success_steps);
visitor.visit(m_failure_steps);
visitor.visit(m_chunk_steps);
}
// chunk steps, given chunk // chunk steps, given chunk
void ReadLoopReadRequest::on_chunk(JS::Value chunk) void ReadLoopReadRequest::on_chunk(JS::Value chunk)
{ {
@ -203,11 +202,10 @@ void ReadableStreamDefaultReader::read_a_chunk(Fetch::Infrastructure::Incrementa
void ReadableStreamDefaultReader::read_all_bytes(GC::Ref<ReadLoopReadRequest::SuccessSteps> success_steps, GC::Ref<ReadLoopReadRequest::FailureSteps> failure_steps) void ReadableStreamDefaultReader::read_all_bytes(GC::Ref<ReadLoopReadRequest::SuccessSteps> success_steps, GC::Ref<ReadLoopReadRequest::FailureSteps> failure_steps)
{ {
auto& realm = this->realm(); auto& realm = this->realm();
auto& vm = realm.vm();
// 1. Let readRequest be a new read request with the following items: // 1. Let readRequest be a new read request with the following items:
// NOTE: items and steps in ReadLoopReadRequest. // NOTE: items and steps in ReadLoopReadRequest.
auto read_request = heap().allocate<ReadLoopReadRequest>(vm, realm, *this, success_steps, failure_steps); auto read_request = heap().allocate<ReadLoopReadRequest>(realm, *this, success_steps, failure_steps);
// 2. Perform ! ReadableStreamDefaultReaderRead(this, readRequest). // 2. Perform ! ReadableStreamDefaultReaderRead(this, readRequest).
readable_stream_default_reader_read(*this, read_request); readable_stream_default_reader_read(*this, read_request);

View file

@ -49,18 +49,15 @@ public:
// AD-HOC: callback triggered on every chunk received from the stream. // AD-HOC: callback triggered on every chunk received from the stream.
using ChunkSteps = GC::Function<void(ByteBuffer)>; using ChunkSteps = GC::Function<void(ByteBuffer)>;
ReadLoopReadRequest(JS::VM& vm, JS::Realm& realm, ReadableStreamDefaultReader& reader, GC::Ref<SuccessSteps> success_steps, GC::Ref<FailureSteps> failure_steps, GC::Ptr<ChunkSteps> chunk_steps = {});
virtual void on_chunk(JS::Value chunk) override;
virtual void on_close() override;
virtual void on_error(JS::Value error) override;
private: private:
ReadLoopReadRequest(JS::Realm&, ReadableStreamDefaultReader&, GC::Ref<SuccessSteps>, GC::Ref<FailureSteps>, GC::Ptr<ChunkSteps> = {});
virtual void visit_edges(Visitor&) override; virtual void visit_edges(Visitor&) override;
JS::VM& m_vm; virtual void on_chunk(JS::Value chunk) override;
virtual void on_close() override;
virtual void on_error(JS::Value error) override;
GC::Ref<JS::Realm> m_realm; GC::Ref<JS::Realm> m_realm;
GC::Ref<ReadableStreamDefaultReader> m_reader; GC::Ref<ReadableStreamDefaultReader> m_reader;
ByteBuffer m_bytes; ByteBuffer m_bytes;