diff options
author | Trevor Norris <trev.norris@gmail.com> | 2016-04-16 12:07:25 +0300 |
---|---|---|
committer | Trevor Norris <trev.norris@gmail.com> | 2016-05-24 23:36:47 +0300 |
commit | ddc19be6de1ba263d9c175b2760696e7b9918b25 (patch) | |
tree | 4da6925cc2183cc62e4386d0ecca19b0bf0a984c | |
parent | e03c32696e1c429c524ccdafe47879196b3ed630 (diff) |
src: inherit first from AsyncWrap
To make sure casting a class of multiple inheritance from a void* to
AsyncWrap succeeds make AsyncWrap the first inherited class.
PR-URL: https://github.com/nodejs/node/pull/6184
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
-rw-r--r-- | src/js_stream.cc | 4 | ||||
-rw-r--r-- | src/js_stream.h | 2 | ||||
-rw-r--r-- | src/node_crypto.h | 6 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/js_stream.cc b/src/js_stream.cc index e81709a8056..6ebdb5a3564 100644 --- a/src/js_stream.cc +++ b/src/js_stream.cc @@ -22,8 +22,8 @@ using v8::Value; JSStream::JSStream(Environment* env, Local<Object> obj, AsyncWrap* parent) - : StreamBase(env), - AsyncWrap(env, obj, AsyncWrap::PROVIDER_JSSTREAM, parent) { + : AsyncWrap(env, obj, AsyncWrap::PROVIDER_JSSTREAM, parent), + StreamBase(env) { node::Wrap(obj, this); MakeWeak<JSStream>(this); } diff --git a/src/js_stream.h b/src/js_stream.h index 1a8902af466..08d1604ac53 100644 --- a/src/js_stream.h +++ b/src/js_stream.h @@ -8,7 +8,7 @@ namespace node { -class JSStream : public StreamBase, public AsyncWrap { +class JSStream : public AsyncWrap, public StreamBase { public: static void Initialize(v8::Local<v8::Object> target, v8::Local<v8::Value> unused, diff --git a/src/node_crypto.h b/src/node_crypto.h index 01c16b39b51..28cee7a4928 100644 --- a/src/node_crypto.h +++ b/src/node_crypto.h @@ -322,7 +322,7 @@ class SSLWrap { // Connection inherits from AsyncWrap because SSLWrap makes calls to // MakeCallback, but SSLWrap doesn't store the handle itself. Instead it // assumes that any args.This() called will be the handle from Connection. -class Connection : public SSLWrap<Connection>, public AsyncWrap { +class Connection : public AsyncWrap, public SSLWrap<Connection> { public: ~Connection() override { #ifdef SSL_CTRL_SET_TLSEXT_SERVERNAME_CB @@ -387,8 +387,8 @@ class Connection : public SSLWrap<Connection>, public AsyncWrap { v8::Local<v8::Object> wrap, SecureContext* sc, SSLWrap<Connection>::Kind kind) - : SSLWrap<Connection>(env, sc, kind), - AsyncWrap(env, wrap, AsyncWrap::PROVIDER_CRYPTO), + : AsyncWrap(env, wrap, AsyncWrap::PROVIDER_CRYPTO), + SSLWrap<Connection>(env, sc, kind), bio_read_(nullptr), bio_write_(nullptr), hello_offset_(0) { |