@@ -67,30 +67,6 @@ void StreamResource::PushStreamListener(StreamListener* listener) {
6767 listener_ = listener;
6868}
6969
70- void StreamResource::RemoveStreamListener (StreamListener* listener) {
71- CHECK_NOT_NULL (listener);
72-
73- StreamListener* previous;
74- StreamListener* current;
75-
76- // Remove from the linked list.
77- for (current = listener_, previous = nullptr ;
78- /* No loop condition because we want a crash if listener is not found */
79- ; previous = current, current = current->previous_listener_ ) {
80- CHECK_NOT_NULL (current);
81- if (current == listener) {
82- if (previous != nullptr )
83- previous->previous_listener_ = current->previous_listener_ ;
84- else
85- listener_ = listener->previous_listener_ ;
86- break ;
87- }
88- }
89-
90- listener->stream_ = nullptr ;
91- listener->previous_listener_ = nullptr ;
92- }
93-
9470uv_buf_t StreamResource::EmitAlloc (size_t suggested_size) {
9571 DebugSealHandleScope seal_handle_scope;
9672 return listener_->OnStreamAlloc (suggested_size);
@@ -122,101 +98,6 @@ StreamBase::StreamBase(Environment* env) : env_(env) {
12298 PushStreamListener (&default_listener_);
12399}
124100
125- int StreamBase::Shutdown (v8::Local<v8::Object> req_wrap_obj) {
126- Environment* env = stream_env ();
127-
128- v8::HandleScope handle_scope (env->isolate ());
129-
130- if (req_wrap_obj.IsEmpty ()) {
131- if (!env->shutdown_wrap_template ()
132- ->NewInstance (env->context ())
133- .ToLocal (&req_wrap_obj)) {
134- return UV_EBUSY;
135- }
136- StreamReq::ResetObject (req_wrap_obj);
137- }
138-
139- BaseObjectPtr<AsyncWrap> req_wrap_ptr;
140- AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope (GetAsyncWrap ());
141- ShutdownWrap* req_wrap = CreateShutdownWrap (req_wrap_obj);
142- if (req_wrap != nullptr )
143- req_wrap_ptr.reset (req_wrap->GetAsyncWrap ());
144- int err = DoShutdown (req_wrap);
145-
146- if (err != 0 && req_wrap != nullptr ) {
147- req_wrap->Dispose ();
148- }
149-
150- const char * msg = Error ();
151- if (msg != nullptr ) {
152- if (req_wrap_obj->Set (env->context (),
153- env->error_string (),
154- OneByteString (env->isolate (), msg)).IsNothing ()) {
155- return UV_EBUSY;
156- }
157- ClearError ();
158- }
159-
160- return err;
161- }
162-
163- StreamWriteResult StreamBase::Write (uv_buf_t * bufs,
164- size_t count,
165- uv_stream_t * send_handle,
166- v8::Local<v8::Object> req_wrap_obj,
167- bool skip_try_write) {
168- Environment* env = stream_env ();
169- int err;
170-
171- size_t total_bytes = 0 ;
172- for (size_t i = 0 ; i < count; ++i)
173- total_bytes += bufs[i].len ;
174- bytes_written_ += total_bytes;
175-
176- if (send_handle == nullptr && !skip_try_write) {
177- err = DoTryWrite (&bufs, &count);
178- if (err != 0 || count == 0 ) {
179- return StreamWriteResult { false , err, nullptr , total_bytes, {} };
180- }
181- }
182-
183- v8::HandleScope handle_scope (env->isolate ());
184-
185- if (req_wrap_obj.IsEmpty ()) {
186- if (!env->write_wrap_template ()
187- ->NewInstance (env->context ())
188- .ToLocal (&req_wrap_obj)) {
189- return StreamWriteResult { false , UV_EBUSY, nullptr , 0 , {} };
190- }
191- StreamReq::ResetObject (req_wrap_obj);
192- }
193-
194- AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope (GetAsyncWrap ());
195- WriteWrap* req_wrap = CreateWriteWrap (req_wrap_obj);
196- BaseObjectPtr<AsyncWrap> req_wrap_ptr (req_wrap->GetAsyncWrap ());
197-
198- err = DoWrite (req_wrap, bufs, count, send_handle);
199- bool async = err == 0 ;
200-
201- if (!async) {
202- req_wrap->Dispose ();
203- req_wrap = nullptr ;
204- }
205-
206- const char * msg = Error ();
207- if (msg != nullptr ) {
208- if (req_wrap_obj->Set (env->context (),
209- env->error_string (),
210- OneByteString (env->isolate (), msg)).IsNothing ()) {
211- return StreamWriteResult { false , UV_EBUSY, nullptr , 0 , {} };
212- }
213- ClearError ();
214- }
215-
216- return StreamWriteResult {
217- async, err, req_wrap, total_bytes, std::move (req_wrap_ptr) };
218- }
219-
220101template <typename OtherBase>
221102SimpleShutdownWrap<OtherBase>::SimpleShutdownWrap(
222103 StreamBase* stream,
@@ -278,22 +159,6 @@ void WriteWrap::SetBackingStore(std::unique_ptr<v8::BackingStore> bs) {
278159 backing_store_ = std::move (bs);
279160}
280161
281- void StreamReq::Done (int status, const char * error_str) {
282- AsyncWrap* async_wrap = GetAsyncWrap ();
283- Environment* env = async_wrap->env ();
284- if (error_str != nullptr ) {
285- v8::HandleScope handle_scope (env->isolate ());
286- if (async_wrap->object ()->Set (
287- env->context (),
288- env->error_string (),
289- OneByteString (env->isolate (), error_str)).IsNothing ()) {
290- return ;
291- }
292- }
293-
294- OnDone (status);
295- }
296-
297162void StreamReq::ResetObject (v8::Local<v8::Object> obj) {
298163 DCHECK_GT (obj->InternalFieldCount (), StreamReq::kStreamReqField );
299164
0 commit comments