diff options
author | Daniel Bevenius <daniel.bevenius@gmail.com> | 2018-10-08 08:38:02 +0200 |
---|---|---|
committer | Daniel Bevenius <daniel.bevenius@gmail.com> | 2018-10-11 05:21:18 +0200 |
commit | 972d0beb591859a1a0df59a3d1818493a6132bf5 (patch) | |
tree | a4b0911b53abd6158dd16fc8518041fd275afe62 | |
parent | 59c7df4a1099ea904de635c6357c08878dfc7093 (diff) | |
download | android-node-v8-972d0beb591859a1a0df59a3d1818493a6132bf5.tar.gz android-node-v8-972d0beb591859a1a0df59a3d1818493a6132bf5.tar.bz2 android-node-v8-972d0beb591859a1a0df59a3d1818493a6132bf5.zip |
http2: make Http2Settings constructors delegate
This commit extracts the common code in the existing Http2Settings
constructors into a private constructor, allowing the existing ones to
delegate to the private constructor it and avoid code duplication.
PR-URL: https://github.com/nodejs/node/pull/23326
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
-rw-r--r-- | src/node_http2.cc | 27 | ||||
-rw-r--r-- | src/node_http2.h | 1 |
2 files changed, 12 insertions, 16 deletions
diff --git a/src/node_http2.cc b/src/node_http2.cc index 2c339d7249..633d2389c7 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -226,32 +226,27 @@ void Http2Session::Http2Settings::Init() { count_ = n; } -Http2Session::Http2Settings::Http2Settings( - Environment* env) +Http2Session::Http2Settings::Http2Settings(Environment* env, + Http2Session* session, uint64_t start_time) : AsyncWrap(env, env->http2settings_constructor_template() ->NewInstance(env->context()) .ToLocalChecked(), - AsyncWrap::PROVIDER_HTTP2SETTINGS), - session_(nullptr), - startTime_(0) { + PROVIDER_HTTP2SETTINGS), + session_(session), + startTime_(start_time) { Init(); } + +Http2Session::Http2Settings::Http2Settings(Environment* env) + : Http2Settings(env, nullptr, 0) {} + // The Http2Settings class is used to configure a SETTINGS frame that is // to be sent to the connected peer. The settings are set using a TypedArray // that is shared with the JavaScript side. -Http2Session::Http2Settings::Http2Settings( - Http2Session* session) - : AsyncWrap(session->env(), - session->env()->http2settings_constructor_template() - ->NewInstance(session->env()->context()) - .ToLocalChecked(), - AsyncWrap::PROVIDER_HTTP2SETTINGS), - session_(session), - startTime_(uv_hrtime()) { - Init(); -} +Http2Session::Http2Settings::Http2Settings(Http2Session* session) + : Http2Settings(session->env(), session, uv_hrtime()) {} // Generates a Buffer that contains the serialized payload of a SETTINGS // frame. This can be used, for instance, to create the Base64-encoded diff --git a/src/node_http2.h b/src/node_http2.h index 8ecca63aeb..4dc33d84c2 100644 --- a/src/node_http2.h +++ b/src/node_http2.h @@ -1136,6 +1136,7 @@ class Http2Session::Http2Settings : public AsyncWrap { get_setting fn); private: + Http2Settings(Environment* env, Http2Session* session, uint64_t start_time); void Init(); Http2Session* session_; uint64_t startTime_; |