diff options
author | GauthamBanasandra <gautham.bangalore@gmail.com> | 2019-07-06 20:09:13 +0530 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-07-09 19:43:40 -0700 |
commit | 7e69bcef1afce41db96fb0b227b62d48bf435781 (patch) | |
tree | 8c5b91b6fa7bbc44a2360786a8fca01af39c62f0 /src | |
parent | b851469855862f5fd1e5da38bbcd944c9987cd02 (diff) | |
download | node-new-7e69bcef1afce41db96fb0b227b62d48bf435781.tar.gz |
src: implement special member functions for classes in env.h
The classes in env.h were not adhering to the rule of five.
As per the rule of five, if a class implements any of five
special member functions, it must implement all the
five special member functions for enabling the compiler for
better optimization.
Refs: https://en.cppreference.com/w/cpp/language/rule_of_three
PR-URL: https://github.com/nodejs/node/pull/28579
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/env.h | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -484,6 +484,8 @@ class IsolateData : public MemoryRetainer { inline v8::Isolate* isolate() const; IsolateData(const IsolateData&) = delete; IsolateData& operator=(const IsolateData&) = delete; + IsolateData(IsolateData&&) = delete; + IsolateData& operator=(IsolateData&&) = delete; private: void DeserializeProperties(const std::vector<size_t>* indexes); @@ -574,6 +576,12 @@ class AsyncRequest : public MemoryRetainer { public: AsyncRequest() = default; ~AsyncRequest(); + + AsyncRequest(const AsyncRequest&) = delete; + AsyncRequest& operator=(const AsyncRequest&) = delete; + AsyncRequest(AsyncRequest&&) = delete; + AsyncRequest& operator=(AsyncRequest&&) = delete; + void Install(Environment* env, void* data, uv_async_cb target); void Uninstall(); void Stop(); @@ -658,6 +666,9 @@ class AsyncHooks : public MemoryRetainer { AsyncHooks(const AsyncHooks&) = delete; AsyncHooks& operator=(const AsyncHooks&) = delete; + AsyncHooks(AsyncHooks&&) = delete; + AsyncHooks& operator=(AsyncHooks&&) = delete; + ~AsyncHooks() = default; // Used to set the kDefaultTriggerAsyncId in a scope. This is instead of // passing the trigger_async_id along with other constructor arguments. @@ -672,6 +683,9 @@ class AsyncHooks : public MemoryRetainer { DefaultTriggerAsyncIdScope(const DefaultTriggerAsyncIdScope&) = delete; DefaultTriggerAsyncIdScope& operator=(const DefaultTriggerAsyncIdScope&) = delete; + DefaultTriggerAsyncIdScope(DefaultTriggerAsyncIdScope&&) = delete; + DefaultTriggerAsyncIdScope& operator=(DefaultTriggerAsyncIdScope&&) = + delete; private: AsyncHooks* async_hooks_; @@ -701,6 +715,8 @@ class AsyncCallbackScope { ~AsyncCallbackScope(); AsyncCallbackScope(const AsyncCallbackScope&) = delete; AsyncCallbackScope& operator=(const AsyncCallbackScope&) = delete; + AsyncCallbackScope(AsyncCallbackScope&&) = delete; + AsyncCallbackScope& operator=(AsyncCallbackScope&&) = delete; private: Environment* env_; @@ -719,6 +735,9 @@ class ImmediateInfo : public MemoryRetainer { ImmediateInfo(const ImmediateInfo&) = delete; ImmediateInfo& operator=(const ImmediateInfo&) = delete; + ImmediateInfo(ImmediateInfo&&) = delete; + ImmediateInfo& operator=(ImmediateInfo&&) = delete; + ~ImmediateInfo() = default; SET_MEMORY_INFO_NAME(ImmediateInfo) SET_SELF_SIZE(ImmediateInfo) @@ -745,6 +764,9 @@ class TickInfo : public MemoryRetainer { TickInfo(const TickInfo&) = delete; TickInfo& operator=(const TickInfo&) = delete; + TickInfo(TickInfo&&) = delete; + TickInfo& operator=(TickInfo&&) = delete; + ~TickInfo() = default; private: friend class Environment; // So we can call the constructor. @@ -779,6 +801,12 @@ class ShouldNotAbortOnUncaughtScope { explicit inline ShouldNotAbortOnUncaughtScope(Environment* env); inline void Close(); inline ~ShouldNotAbortOnUncaughtScope(); + ShouldNotAbortOnUncaughtScope(const ShouldNotAbortOnUncaughtScope&) = delete; + ShouldNotAbortOnUncaughtScope& operator=( + const ShouldNotAbortOnUncaughtScope&) = delete; + ShouldNotAbortOnUncaughtScope(ShouldNotAbortOnUncaughtScope&&) = delete; + ShouldNotAbortOnUncaughtScope& operator=(ShouldNotAbortOnUncaughtScope&&) = + delete; private: Environment* env_; @@ -818,6 +846,8 @@ class Environment : public MemoryRetainer { public: Environment(const Environment&) = delete; Environment& operator=(const Environment&) = delete; + Environment(Environment&&) = delete; + Environment& operator=(Environment&&) = delete; SET_MEMORY_INFO_NAME(Environment) |