mirror of
https://github.com/wiiu-env/WiiUPluginSystem.git
synced 2026-09-09 10:35:55 -05:00
ConfigAPI: release handle in move operator/constructor before overwriting it.
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
|
||||
#include "WUPSConfigItem.h"
|
||||
#include <optional>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
|
||||
class WUPSConfigCategory {
|
||||
@@ -14,17 +13,11 @@ public:
|
||||
|
||||
WUPSConfigCategory(const WUPSConfigCategory &) = delete;
|
||||
|
||||
WUPSConfigCategory(WUPSConfigCategory &&src) noexcept : mHandle(src.mHandle) {
|
||||
src.mHandle = {};
|
||||
}
|
||||
WUPSConfigCategory(WUPSConfigCategory &&src) noexcept;
|
||||
|
||||
WUPSConfigCategory &operator=(WUPSConfigCategory &&src) noexcept {
|
||||
if (this != &src) {
|
||||
this->mHandle = src.mHandle;
|
||||
src.mHandle = {};
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
WUPSConfigCategory &operator=(WUPSConfigCategory &&src) noexcept;
|
||||
|
||||
void releaseHandle() noexcept;
|
||||
|
||||
static std::optional<WUPSConfigCategory> Create(std::string_view name, WUPSConfigAPIStatus &error) noexcept;
|
||||
|
||||
@@ -38,13 +31,9 @@ public:
|
||||
|
||||
void add(WUPSConfigItem &&item);
|
||||
|
||||
[[nodiscard]] const WUPSConfigCategoryHandle &getHandle() const {
|
||||
return mHandle;
|
||||
}
|
||||
[[nodiscard]] const WUPSConfigCategoryHandle &getHandle() const;
|
||||
|
||||
void release() {
|
||||
mHandle = {};
|
||||
}
|
||||
void release();
|
||||
|
||||
private:
|
||||
WUPSConfigCategoryHandle mHandle = {};
|
||||
|
||||
@@ -14,25 +14,15 @@ public:
|
||||
|
||||
WUPSConfigItem(const WUPSConfigItem &) = delete;
|
||||
|
||||
WUPSConfigItem(WUPSConfigItem &&src) noexcept : mHandle(src.mHandle) {
|
||||
src.mHandle = {};
|
||||
}
|
||||
WUPSConfigItem(WUPSConfigItem &&src) noexcept;
|
||||
|
||||
WUPSConfigItem &operator=(WUPSConfigItem &&src) noexcept {
|
||||
if (this != &src) {
|
||||
this->mHandle = src.mHandle;
|
||||
src.mHandle = {};
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
WUPSConfigItem &operator=(WUPSConfigItem &&src) noexcept;
|
||||
|
||||
[[nodiscard]] const WUPSConfigItemHandle &getHandle() const {
|
||||
return mHandle;
|
||||
}
|
||||
void releaseHandle() noexcept;
|
||||
|
||||
void release() {
|
||||
mHandle = {};
|
||||
}
|
||||
[[nodiscard]] const WUPSConfigItemHandle &getHandle() const;
|
||||
|
||||
void release();
|
||||
|
||||
private:
|
||||
WUPSConfigItemHandle mHandle = {};
|
||||
|
||||
Reference in New Issue
Block a user