diff --git a/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.cpp b/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.cpp index 45eb8f5ebfd95b..78393fd22b708d 100644 --- a/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.cpp +++ b/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.cpp @@ -32,7 +32,7 @@ PresetStructWithOwnedMembers::PresetStructWithOwnedMembers(const PresetStruct::T *this = other; } -void PresetStructWithOwnedMembers::operator=(const PresetStruct::Type & other) +PresetStructWithOwnedMembers & PresetStructWithOwnedMembers::operator=(const PresetStruct::Type & other) { SetPresetScenario(other.presetScenario); CHIP_ERROR err = SetPresetHandle(other.presetHandle); @@ -48,11 +48,17 @@ void PresetStructWithOwnedMembers::operator=(const PresetStruct::Type & other) SetCoolingSetpoint(other.coolingSetpoint); SetHeatingSetpoint(other.heatingSetpoint); SetBuiltIn(other.builtIn); + return *this; } -void PresetStructWithOwnedMembers::operator=(const PresetStructWithOwnedMembers & other) +PresetStructWithOwnedMembers & PresetStructWithOwnedMembers::operator=(const PresetStructWithOwnedMembers & other) { + if (this == &other) + { + return *this; + } *this = static_cast(other); + return *this; } void PresetStructWithOwnedMembers::SetPresetScenario(PresetScenarioEnum enumValue) diff --git a/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.h b/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.h index d31cbc3b2cb409..8a2fa7f336c58b 100644 --- a/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.h +++ b/src/app/clusters/thermostat-server/PresetStructWithOwnedMembers.h @@ -42,8 +42,8 @@ struct PresetStructWithOwnedMembers : protected Structs::PresetStruct::Type public: PresetStructWithOwnedMembers() = default; PresetStructWithOwnedMembers(const Structs::PresetStruct::Type & other); - void operator=(const Structs::PresetStruct::Type & other); - void operator=(const PresetStructWithOwnedMembers & other); + PresetStructWithOwnedMembers & operator=(const Structs::PresetStruct::Type & other); + PresetStructWithOwnedMembers & operator=(const PresetStructWithOwnedMembers & other); void SetPresetScenario(PresetScenarioEnum enumValue); CHIP_ERROR SetPresetHandle(const DataModel::Nullable & newPresetHandle); diff --git a/src/app/clusters/thermostat-server/thermostat-server.cpp b/src/app/clusters/thermostat-server/thermostat-server.cpp index d4c85f56e1b89a..afdb1b12afe763 100644 --- a/src/app/clusters/thermostat-server/thermostat-server.cpp +++ b/src/app/clusters/thermostat-server/thermostat-server.cpp @@ -1446,7 +1446,6 @@ void handleAtomicBegin(CommandHandler * commandObj, const ConcreteCommandPath & gThermostatAttrAccess.SetAtomicWrite(endpoint, true); gThermostatAttrAccess.SetAtomicWriteScopedNodeId(endpoint, GetSourceScopedNodeId(commandObj)); sendAtomicResponse(commandObj, commandPath, imcode::Success, imcode::Success, imcode::Success, MakeOptional(timeout)); - return; } imcode commitPresets(Delegate * delegate, EndpointId endpoint)