Skip to content

Commit b4f6ea0

Browse files
addaleaxjasnell
authored andcommitted
src: make StreamBase::GetAsyncWrap pure virtual
PR-URL: #13174 Reviewed-By: Andreas Madsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Daniel Bevenius <[email protected]>
1 parent 597aff0 commit b4f6ea0

File tree

2 files changed

+6
-20
lines changed

2 files changed

+6
-20
lines changed

src/stream_base.cc

+5-19
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ int StreamBase::Shutdown(const FunctionCallbackInfo<Value>& args) {
5454
Local<Object> req_wrap_obj = args[0].As<Object>();
5555

5656
AsyncWrap* wrap = GetAsyncWrap();
57-
if (wrap != nullptr)
58-
env->set_init_trigger_id(wrap->get_id());
57+
CHECK_NE(wrap, nullptr);
58+
env->set_init_trigger_id(wrap->get_id());
5959
ShutdownWrap* req_wrap = new ShutdownWrap(env,
6060
req_wrap_obj,
6161
this,
@@ -133,8 +133,6 @@ int StreamBase::Writev(const FunctionCallbackInfo<Value>& args) {
133133
return UV_ENOBUFS;
134134

135135
AsyncWrap* wrap = GetAsyncWrap();
136-
// NOTE: All tests show that GetAsyncWrap() never returns nullptr here. If it
137-
// can then replace the CHECK_NE() with if (wrap != nullptr).
138136
CHECK_NE(wrap, nullptr);
139137
env->set_init_trigger_id(wrap->get_id());
140138
WriteWrap* req_wrap = WriteWrap::New(env,
@@ -425,16 +423,9 @@ void StreamBase::EmitData(ssize_t nread,
425423
if (argv[2].IsEmpty())
426424
argv[2] = Undefined(env->isolate());
427425

428-
AsyncWrap* async = GetAsyncWrap();
429-
if (async == nullptr) {
430-
node::MakeCallback(env,
431-
GetObject(),
432-
env->onread_string(),
433-
arraysize(argv),
434-
argv);
435-
} else {
436-
async->MakeCallback(env->onread_string(), arraysize(argv), argv);
437-
}
426+
AsyncWrap* wrap = GetAsyncWrap();
427+
CHECK_NE(wrap, nullptr);
428+
wrap->MakeCallback(env->onread_string(), arraysize(argv), argv);
438429
}
439430

440431

@@ -448,11 +439,6 @@ int StreamBase::GetFD() {
448439
}
449440

450441

451-
AsyncWrap* StreamBase::GetAsyncWrap() {
452-
return nullptr;
453-
}
454-
455-
456442
Local<Object> StreamBase::GetObject() {
457443
return GetAsyncWrap()->object();
458444
}

src/stream_base.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ class StreamBase : public StreamResource {
248248
virtual ~StreamBase() = default;
249249

250250
// One of these must be implemented
251-
virtual AsyncWrap* GetAsyncWrap();
251+
virtual AsyncWrap* GetAsyncWrap() = 0;
252252
virtual v8::Local<v8::Object> GetObject();
253253

254254
// Libuv callbacks

0 commit comments

Comments
 (0)