@@ -163,10 +163,10 @@ static EmberAfStatus CheckScheduleTypes(ThermostatMatterScheduleManager & mgr, S
163
163
// make sure the preset exists (check 7)
164
164
{
165
165
size_t preset_index = 0 ;
166
- PresetStruct::Type preset;
167
166
bool presetFound = false ;
168
- while (presetList[ index ] != CHIP_ERROR_NOT_FOUND )
167
+ while (preset_index < presetList. size () )
169
168
{
169
+ auto &preset = presetList[preset_index];
170
170
VerifyOrDie (preset.presetHandle .IsNull () == false );
171
171
if (preset.presetHandle .Value ().data_equal (schedule.presetHandle .Value ()))
172
172
{
@@ -261,17 +261,17 @@ EmberAfStatus ThermostatMatterScheduleManager::ValidateSchedulesForCommitting(Sp
261
261
VerifyOrDie (old_schedule.scheduleHandle .IsNull () == false );
262
262
263
263
// Check 1. -- for each existing built in schedule, make sure it's still in the new list
264
- if ((old_schedule.builtIn .HasValue () == true ) && (old_schedule.builtIn .Value () == true ))
264
+ if ((old_schedule.builtIn .IsNull () == false ) && (old_schedule.builtIn .Value () == true ))
265
265
{
266
266
status = FindScheduleByHandle (old_schedule.scheduleHandle .Value (), newlist, querySchedule);
267
267
VerifyOrExit (status == EMBER_ZCL_STATUS_SUCCESS, status = EMBER_ZCL_STATUS_CONSTRAINT_ERROR);
268
- VerifyOrExit (querySchedule.builtIn .HasValue () == false , status = EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS);
268
+ VerifyOrExit (querySchedule.builtIn .IsNull () == false , status = EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS);
269
269
VerifyOrExit (querySchedule.builtIn .Value () == true , status = EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS);
270
270
}
271
271
272
272
// Check 2 -- If the schedule is currently being referenced but would be deleted.
273
273
// if its a builtin schedule we don't need to search again, we know it's there from the above check.
274
- if ((old_schedule.builtIn .HasValue () == false || old_schedule.builtIn .Value () == false ) && IsScheduleHandleReferenced (*this , old_schedule.scheduleHandle .Value ()))
274
+ if ((old_schedule.builtIn .IsNull () == true || old_schedule.builtIn .Value () == false ) && IsScheduleHandleReferenced (*this , old_schedule.scheduleHandle .Value ()))
275
275
{
276
276
VerifyOrDie (old_schedule.scheduleHandle .IsNull () == false );
277
277
status = FindScheduleByHandle (old_schedule.scheduleHandle .Value (), newlist, querySchedule);
@@ -296,13 +296,16 @@ EmberAfStatus ThermostatMatterScheduleManager::ValidateSchedulesForCommitting(Sp
296
296
SuccessOrExit (status);
297
297
298
298
// Check BuiltIn
299
- VerifyOrExit (new_schedule.builtIn .HasValue () == existingSchedule.builtIn .HasValue (), status = EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS);
300
- VerifyOrExit (new_schedule.builtIn .Value () == existingSchedule.builtIn .Value (), status = EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS);
299
+ VerifyOrExit (new_schedule.builtIn .IsNull () == existingSchedule.builtIn .IsNull (), status = EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS);
300
+ if (new_schedule.builtIn .IsNull () == false )
301
+ {
302
+ VerifyOrExit (new_schedule.builtIn .Value () == existingSchedule.builtIn .Value (), status = EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS);
303
+ }
301
304
}
302
305
else
303
306
{
304
307
// new schedule checks
305
- VerifyOrExit ((new_schedule.builtIn .HasValue () == false ) || (new_schedule.builtIn .Value () == false ), status = EMBER_ZCL_STATUS_CONSTRAINT_ERROR);
308
+ VerifyOrExit ((new_schedule.builtIn .IsNull () == true ) || (new_schedule.builtIn .Value () == false ), status = EMBER_ZCL_STATUS_CONSTRAINT_ERROR);
306
309
}
307
310
308
311
// Check for system mode in Schedule Types
0 commit comments