diff options
Diffstat (limited to 'src/node_http2.cc')
-rw-r--r-- | src/node_http2.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/node_http2.cc b/src/node_http2.cc index d9b886284d..3a7591f31a 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -1782,11 +1782,13 @@ void Http2Session::OnStreamRead(ssize_t nread, const uv_buf_t& buf_) { // Shrink to the actual amount of used data. buf.Resize(nread); - IncrementCurrentSessionMemory(buf.size()); + IncrementCurrentSessionMemory(nread); OnScopeLeave on_scope_leave([&]() { // Once finished handling this write, reset the stream buffer. // The memory has either been free()d or was handed over to V8. - DecrementCurrentSessionMemory(buf.size()); + // We use `nread` instead of `buf.size()` here, because the buffer is + // cleared as part of the `.ToArrayBuffer()` call below. + DecrementCurrentSessionMemory(nread); stream_buf_ab_ = Local<ArrayBuffer>(); stream_buf_ = uv_buf_init(nullptr, 0); }); |