Don't instantiate duration_t using default ctor
This commit is contained in:
parent
8b175c7d6d
commit
0918f9d4f5
1 changed files with 11 additions and 10 deletions
21
src/times.cc
21
src/times.cc
|
|
@ -513,7 +513,7 @@ namespace {
|
||||||
date_t end;
|
date_t end;
|
||||||
bool parse_specifier = false;
|
bool parse_specifier = false;
|
||||||
|
|
||||||
date_interval_t::duration_t duration;
|
optional<date_interval_t::duration_t> duration;
|
||||||
|
|
||||||
assert(look_for_start || look_for_end);
|
assert(look_for_start || look_for_end);
|
||||||
|
|
||||||
|
|
@ -531,22 +531,23 @@ namespace {
|
||||||
else {
|
else {
|
||||||
parse_specifier = true;
|
parse_specifier = true;
|
||||||
}
|
}
|
||||||
end = date_interval_t::add_duration(start, duration);
|
|
||||||
|
|
||||||
if (parse_specifier)
|
if (parse_specifier)
|
||||||
parse_inclusion_specifier(word, &start, &end);
|
parse_inclusion_specifier(word, &start, &end);
|
||||||
|
else
|
||||||
|
end = date_interval_t::add_duration(start, *duration);
|
||||||
|
|
||||||
if (type == _("last")) {
|
if (type == _("last") && duration) {
|
||||||
start = date_interval_t::subtract_duration(start, duration);
|
start = date_interval_t::subtract_duration(start, *duration);
|
||||||
end = date_interval_t::subtract_duration(end, duration);
|
end = date_interval_t::subtract_duration(end, *duration);
|
||||||
}
|
}
|
||||||
else if (type == _("next")) {
|
else if (type == _("next") && duration) {
|
||||||
start = date_interval_t::add_duration(start, duration);
|
start = date_interval_t::add_duration(start, *duration);
|
||||||
end = date_interval_t::add_duration(end, duration);
|
end = date_interval_t::add_duration(end, *duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (look_for_start) interval.start = start;
|
if (look_for_start && is_valid(start)) interval.start = start;
|
||||||
if (look_for_end) interval.end = end;
|
if (look_for_end && is_valid(end)) interval.end = end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue