diff --git a/lib/icinga/timeperiod.cpp b/lib/icinga/timeperiod.cpp index 97183223e..94a57c30b 100644 --- a/lib/icinga/timeperiod.cpp +++ b/lib/icinga/timeperiod.cpp @@ -142,12 +142,12 @@ void TimePeriod::RemoveSegment(double begin, double end) for (const Dictionary::Ptr& segment : segments) { /* Fully contained in the specified range? */ if (segment->Get("begin") >= begin && segment->Get("end") <= end) + // Don't add the old segment, because the segment is fully contained into our range continue; /* Not overlapping at all? */ if (segment->Get("end") < begin || segment->Get("begin") > end) { newSegments->Add(segment); - continue; } @@ -162,6 +162,8 @@ void TimePeriod::RemoveSegment(double begin, double end) { "begin", end }, { "end", segment->Get("end") } })); + // Don't add the old segment, because we have now two new segments and a gap between + continue; } /* Adjust the begin/end timestamps so as to not overlap with the specified range. */