From 3c9866d6973dc9d67ab25abc85b88db3058a8f49 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 16 Aug 2019 04:42:57 -0400 Subject: [PATCH] DeviceToken: Amend move constructor The default move constructor isn't const qualified. The copy assignment operator wasn't deleted either which is somewhat dangerous. We can also opt for simply defaulting the move constructor and assignment operators instead of defining the move constructor like a copy constructor. --- include/boo/inputdev/DeviceToken.hpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/include/boo/inputdev/DeviceToken.hpp b/include/boo/inputdev/DeviceToken.hpp index eb98c66..b70a749 100644 --- a/include/boo/inputdev/DeviceToken.hpp +++ b/include/boo/inputdev/DeviceToken.hpp @@ -28,14 +28,7 @@ class DeviceToken { public: DeviceToken(const DeviceToken&) = delete; - DeviceToken(const DeviceToken&& other) - : m_devType(other.m_devType) - , m_vendorId(other.m_vendorId) - , m_productId(other.m_productId) - , m_vendorName(other.m_vendorName) - , m_productName(other.m_productName) - , m_devPath(other.m_devPath) - , m_connectedDev(other.m_connectedDev) {} + DeviceToken(DeviceToken&& other) noexcept = default; DeviceToken(DeviceType devType, unsigned vid, unsigned pid, const char* vname, const char* pname, const char* path) : m_devType(devType), m_vendorId(vid), m_productId(pid), m_devPath(path), m_connectedDev(NULL) { if (vname) @@ -44,6 +37,12 @@ public: m_productName = pname; } + DeviceToken& operator=(const DeviceToken&) = delete; + DeviceToken& operator=(DeviceToken&&) noexcept = default; + + bool operator==(const DeviceToken& rhs) const { return m_devPath == rhs.m_devPath; } + bool operator<(const DeviceToken& rhs) const { return m_devPath < rhs.m_devPath; } + DeviceType getDeviceType() const { return m_devType; } unsigned getVendorId() const { return m_vendorId; } unsigned getProductId() const { return m_productId; } @@ -56,9 +55,6 @@ public: m_connectedDev = DeviceSignature::DeviceNew(*this); return m_connectedDev; } - - bool operator==(const DeviceToken& rhs) const { return m_devPath == rhs.m_devPath; } - bool operator<(const DeviceToken& rhs) const { return m_devPath < rhs.m_devPath; } }; } // namespace boo