WiiUPluginSystem/libraries/libwups/WUPSConfigItem.cpp
Maschell 6e1c40fc39
Some checks are pending
Publish Docker Image / clang-format-lib (push) Waiting to run
Publish Docker Image / build-lib (push) Blocked by required conditions
Publish Docker Image / clang-format-examples (push) Waiting to run
Publish Docker Image / build-examples (push) Blocked by required conditions
Publish Docker Image / build-and-push-image (push) Blocked by required conditions
ConfigAPI: release handle in move operator/constructor before overwriting it.
2024-12-30 14:18:51 +01:00

36 lines
803 B
C++

#include <wups/config/WUPSConfigItem.h>
#include <wups/config_api.h>
WUPSConfigItem::~WUPSConfigItem() {
releaseHandle();
}
WUPSConfigItem::WUPSConfigItem(WUPSConfigItem &&src) noexcept {
releaseHandle();
this->mHandle = src.mHandle;
src.mHandle = {};
}
WUPSConfigItem &WUPSConfigItem::operator=(WUPSConfigItem &&src) noexcept {
if (this != &src) {
releaseHandle();
this->mHandle = src.mHandle;
src.mHandle = {};
}
return *this;
}
void WUPSConfigItem::releaseHandle() noexcept {
if (mHandle.handle != nullptr) {
WUPSConfigAPI_Item_Destroy(mHandle);
mHandle.handle = nullptr;
}
}
const WUPSConfigItemHandle &WUPSConfigItem::getHandle() const {
return mHandle;
}
void WUPSConfigItem::release() {
mHandle = {};
}