summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGauthamBanasandra <gautham.bangalore@gmail.com>2019-07-06 20:09:13 +0530
committerRich Trott <rtrott@gmail.com>2019-07-09 19:43:40 -0700
commit7e69bcef1afce41db96fb0b227b62d48bf435781 (patch)
tree8c5b91b6fa7bbc44a2360786a8fca01af39c62f0 /src
parentb851469855862f5fd1e5da38bbcd944c9987cd02 (diff)
downloadandroid-node-v8-7e69bcef1afce41db96fb0b227b62d48bf435781.tar.gz
android-node-v8-7e69bcef1afce41db96fb0b227b62d48bf435781.tar.bz2
android-node-v8-7e69bcef1afce41db96fb0b227b62d48bf435781.zip
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.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/env.h b/src/env.h
index 3e3d41790e..2bcb07a633 100644
--- a/src/env.h
+++ b/src/env.h
@@ -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)