diff options
author | Franziska Hinkelmann <franziska.hinkelmann@gmail.com> | 2017-11-16 15:56:20 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-11-19 16:13:37 +0100 |
commit | 2d50b5e537dd94f238a499083cd234ceca3fff5f (patch) | |
tree | b216a72bb478f9ff46d95c2d6d735e234c3db16a /src | |
parent | d61cd9d4fe4c434d689ae0553df24d538993f06b (diff) | |
download | android-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.h | 10 | ||||
-rw-r--r-- | src/env.h | 4 | ||||
-rw-r--r-- | src/node_http2.cc | 5 |
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 { @@ -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); |