summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Bevenius <daniel.bevenius@gmail.com>2018-10-08 08:38:02 +0200
committerDaniel Bevenius <daniel.bevenius@gmail.com>2018-10-11 05:21:18 +0200
commit972d0beb591859a1a0df59a3d1818493a6132bf5 (patch)
treea4b0911b53abd6158dd16fc8518041fd275afe62
parent59c7df4a1099ea904de635c6357c08878dfc7093 (diff)
downloadandroid-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.cc27
-rw-r--r--src/node_http2.h1
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_;