Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 0550a58

Browse filesBrowse files
addaleaxtargos
authored andcommitted
src: remove StreamBase::kFlagHasWritev
Since libuv 1.21.0, pipes on Windows support `writev` on the libuv side. This allows for some simplification, and makes the `StreamBase` API more uniform (multi-buffer `Write()` is always supported now, including when used by other non-JS consumers like HTTP/2). PR-URL: #21527 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent a8a7575 commit 0550a58
Copy full SHA for 0550a58

File tree

Expand file treeCollapse file tree

12 files changed

+63
-30
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

12 files changed

+63
-30
lines changed
Open diff view settings
Collapse file

‎lib/net.js‎

Copy file name to clipboardExpand all lines: lib/net.js
-4Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,6 @@ function initSocketHandle(self) {
210210
self._handle.owner = self;
211211
self._handle.onread = onread;
212212
self[async_id_symbol] = getNewAsyncId(self._handle);
213-
214-
// If handle doesn't support writev - neither do we
215-
if (!self._handle.writev)
216-
self._writev = null;
217213
}
218214
}
219215

Collapse file

‎src/js_stream.cc‎

Copy file name to clipboardExpand all lines: src/js_stream.cc
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ void JSStream::Initialize(Local<Object> target,
208208
env->SetProtoMethod(t, "readBuffer", ReadBuffer);
209209
env->SetProtoMethod(t, "emitEOF", EmitEOF);
210210

211-
StreamBase::AddMethods<JSStream>(env, t, StreamBase::kFlagHasWritev);
211+
StreamBase::AddMethods<JSStream>(env, t);
212212
target->Set(jsStreamString, t->GetFunction());
213213
}
214214

Collapse file

‎src/node_file.cc‎

Copy file name to clipboardExpand all lines: src/node_file.cc
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1997,7 +1997,7 @@ void Initialize(Local<Object> target,
19971997
Local<String> handleString =
19981998
FIXED_ONE_BYTE_STRING(env->isolate(), "FileHandle");
19991999
fd->SetClassName(handleString);
2000-
StreamBase::AddMethods<FileHandle>(env, fd, StreamBase::kFlagNone);
2000+
StreamBase::AddMethods<FileHandle>(env, fd);
20012001
target->Set(context, handleString, fd->GetFunction()).FromJust();
20022002
env->set_fd_constructor_template(fdt);
20032003

Collapse file

‎src/node_http2.cc‎

Copy file name to clipboardExpand all lines: src/node_http2.cc
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2840,7 +2840,7 @@ void Initialize(Local<Object> target,
28402840
env->SetProtoMethod(stream, "rstStream", Http2Stream::RstStream);
28412841
env->SetProtoMethod(stream, "refreshState", Http2Stream::RefreshState);
28422842
AsyncWrap::AddWrapMethods(env, stream);
2843-
StreamBase::AddMethods<Http2Stream>(env, stream, StreamBase::kFlagHasWritev);
2843+
StreamBase::AddMethods<Http2Stream>(env, stream);
28442844
Local<ObjectTemplate> streamt = stream->InstanceTemplate();
28452845
streamt->SetInternalFieldCount(1);
28462846
env->set_http2stream_constructor_template(streamt);
Collapse file

‎src/pipe_wrap.cc‎

Copy file name to clipboardExpand all lines: src/pipe_wrap.cc
-4Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,7 @@ void PipeWrap::Initialize(Local<Object> target,
8383
env->SetProtoMethod(t, "ref", HandleWrap::Ref);
8484
env->SetProtoMethod(t, "hasRef", HandleWrap::HasRef);
8585

86-
#ifdef _WIN32
8786
LibuvStreamWrap::AddMethods(env, t);
88-
#else
89-
LibuvStreamWrap::AddMethods(env, t, StreamBase::kFlagHasWritev);
90-
#endif
9187

9288
env->SetProtoMethod(t, "bind", Bind);
9389
env->SetProtoMethod(t, "listen", Listen);
Collapse file

‎src/stream_base-inl.h‎

Copy file name to clipboardExpand all lines: src/stream_base-inl.h
+2-5Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,7 @@ inline WriteWrap* StreamBase::CreateWriteWrap(
266266
}
267267

268268
template <class Base>
269-
void StreamBase::AddMethods(Environment* env,
270-
Local<FunctionTemplate> t,
271-
int flags) {
269+
void StreamBase::AddMethods(Environment* env, Local<FunctionTemplate> t) {
272270
HandleScope scope(env->isolate());
273271

274272
enum PropertyAttribute attributes =
@@ -324,8 +322,7 @@ void StreamBase::AddMethods(Environment* env,
324322
env->SetProtoMethod(t, "readStart", JSMethod<Base, &StreamBase::ReadStartJS>);
325323
env->SetProtoMethod(t, "readStop", JSMethod<Base, &StreamBase::ReadStopJS>);
326324
env->SetProtoMethod(t, "shutdown", JSMethod<Base, &StreamBase::Shutdown>);
327-
if ((flags & kFlagHasWritev) != 0)
328-
env->SetProtoMethod(t, "writev", JSMethod<Base, &StreamBase::Writev>);
325+
env->SetProtoMethod(t, "writev", JSMethod<Base, &StreamBase::Writev>);
329326
env->SetProtoMethod(t,
330327
"writeBuffer",
331328
JSMethod<Base, &StreamBase::WriteBuffer>);
Collapse file

‎src/stream_base.h‎

Copy file name to clipboardExpand all lines: src/stream_base.h
+1-7Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -255,15 +255,9 @@ class StreamResource {
255255

256256
class StreamBase : public StreamResource {
257257
public:
258-
enum Flags {
259-
kFlagNone = 0x0,
260-
kFlagHasWritev = 0x1
261-
};
262-
263258
template <class Base>
264259
static inline void AddMethods(Environment* env,
265-
v8::Local<v8::FunctionTemplate> target,
266-
int flags = kFlagNone);
260+
v8::Local<v8::FunctionTemplate> target);
267261

268262
virtual bool IsAlive() = 0;
269263
virtual bool IsClosing() = 0;
Collapse file

‎src/stream_wrap.cc‎

Copy file name to clipboardExpand all lines: src/stream_wrap.cc
+2-3Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,7 @@ LibuvStreamWrap::LibuvStreamWrap(Environment* env,
9797

9898

9999
void LibuvStreamWrap::AddMethods(Environment* env,
100-
v8::Local<v8::FunctionTemplate> target,
101-
int flags) {
100+
v8::Local<v8::FunctionTemplate> target) {
102101
Local<FunctionTemplate> get_write_queue_size =
103102
FunctionTemplate::New(env->isolate(),
104103
GetWriteQueueSize,
@@ -110,7 +109,7 @@ void LibuvStreamWrap::AddMethods(Environment* env,
110109
Local<FunctionTemplate>(),
111110
static_cast<PropertyAttribute>(ReadOnly | DontDelete));
112111
env->SetProtoMethod(target, "setBlocking", SetBlocking);
113-
StreamBase::AddMethods<LibuvStreamWrap>(env, target, flags);
112+
StreamBase::AddMethods<LibuvStreamWrap>(env, target);
114113
}
115114

116115

Collapse file

‎src/stream_wrap.h‎

Copy file name to clipboardExpand all lines: src/stream_wrap.h
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,7 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase {
8585
AsyncWrap* GetAsyncWrap() override;
8686

8787
static void AddMethods(Environment* env,
88-
v8::Local<v8::FunctionTemplate> target,
89-
int flags = StreamBase::kFlagNone);
88+
v8::Local<v8::FunctionTemplate> target);
9089

9190
protected:
9291
inline void set_fd(int fd) {
Collapse file

‎src/tcp_wrap.cc‎

Copy file name to clipboardExpand all lines: src/tcp_wrap.cc
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void TCPWrap::Initialize(Local<Object> target,
9393
env->SetProtoMethod(t, "unref", HandleWrap::Unref);
9494
env->SetProtoMethod(t, "hasRef", HandleWrap::HasRef);
9595

96-
LibuvStreamWrap::AddMethods(env, t, StreamBase::kFlagHasWritev);
96+
LibuvStreamWrap::AddMethods(env, t);
9797

9898
env->SetProtoMethod(t, "open", Open);
9999
env->SetProtoMethod(t, "bind", Bind);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.