summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFranziska Hinkelmann <franziska.hinkelmann@gmail.com>2017-11-16 15:56:20 +0100
committerAnna Henningsen <anna@addaleax.net>2017-11-19 16:13:37 +0100
commit2d50b5e537dd94f238a499083cd234ceca3fff5f (patch)
treeb216a72bb478f9ff46d95c2d6d735e234c3db16a /src
parentd61cd9d4fe4c434d689ae0553df24d538993f06b (diff)
downloadandroid-node-v8-2d50b5e537dd94f238a499083cd234ceca3fff5f.tar.gz
android-node-v8-2d50b5e537dd94f238a499083cd234ceca3fff5f.tar.bz2
android-node-v8-2d50b5e537dd94f238a499083cd234ceca3fff5f.zip
src: use unique_ptr for http2_state
PR-URL: https://github.com/nodejs/node/pull/17078 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/env-inl.h10
-rw-r--r--src/env.h4
-rw-r--r--src/node_http2.cc5
3 files changed, 10 insertions, 9 deletions
diff --git a/src/env-inl.h b/src/env-inl.h
index 2c55e8cd94..120d550d4d 100644
--- a/src/env-inl.h
+++ b/src/env-inl.h
@@ -341,7 +341,6 @@ inline Environment::~Environment() {
delete[] heap_statistics_buffer_;
delete[] heap_space_statistics_buffer_;
delete[] http_parser_buffer_;
- delete http2_state_;
free(performance_state_);
}
@@ -496,12 +495,13 @@ inline void Environment::set_http_parser_buffer(char* buffer) {
}
inline http2::http2_state* Environment::http2_state() const {
- return http2_state_;
+ return http2_state_.get();
}
-inline void Environment::set_http2_state(http2::http2_state* buffer) {
- CHECK_EQ(http2_state_, nullptr); // Should be set only once.
- http2_state_ = buffer;
+inline void Environment::set_http2_state(
+ std::unique_ptr<http2::http2_state> buffer) {
+ CHECK(!http2_state_); // Should be set only once.
+ http2_state_ = std::move(buffer);
}
inline double* Environment::fs_stats_field_array() const {
diff --git a/src/env.h b/src/env.h
index 862431df2d..59ad81bc21 100644
--- a/src/env.h
+++ b/src/env.h
@@ -617,7 +617,7 @@ class Environment {
inline void set_http_parser_buffer(char* buffer);
inline http2::http2_state* http2_state() const;
- inline void set_http2_state(http2::http2_state * state);
+ inline void set_http2_state(std::unique_ptr<http2::http2_state> state);
inline double* fs_stats_field_array() const;
inline void set_fs_stats_field_array(double* fields);
@@ -752,7 +752,7 @@ class Environment {
double* heap_space_statistics_buffer_ = nullptr;
char* http_parser_buffer_;
- http2::http2_state* http2_state_ = nullptr;
+ std::unique_ptr<http2::http2_state> http2_state_;
double* fs_stats_field_array_;
diff --git a/src/node_http2.cc b/src/node_http2.cc
index 84c1cfd977..bdf0d31b47 100644
--- a/src/node_http2.cc
+++ b/src/node_http2.cc
@@ -1211,8 +1211,7 @@ void Initialize(Local<Object> target,
Isolate* isolate = env->isolate();
HandleScope scope(isolate);
- http2_state* state = new http2_state(isolate);
- env->set_http2_state(state);
+ std::unique_ptr<http2_state> state(new http2_state(isolate));
#define SET_STATE_TYPEDARRAY(name, field) \
target->Set(context, \
@@ -1234,6 +1233,8 @@ void Initialize(Local<Object> target,
"optionsBuffer", state->options_buffer.GetJSArray());
#undef SET_STATE_TYPEDARRAY
+ env->set_http2_state(std::move(state));
+
NODE_DEFINE_CONSTANT(target, PADDING_BUF_FRAME_LENGTH);
NODE_DEFINE_CONSTANT(target, PADDING_BUF_MAX_PAYLOAD_LENGTH);
NODE_DEFINE_CONSTANT(target, PADDING_BUF_RETURN_VALUE);