Don't instantiate duration_t using default ctor

This commit is contained in:
John Wiegley 2009-03-23 19:21:27 -04:00
parent 8b175c7d6d
commit 0918f9d4f5

View file

@ -513,7 +513,7 @@ namespace {
date_t end;
bool parse_specifier = false;
date_interval_t::duration_t duration;
optional<date_interval_t::duration_t> duration;
assert(look_for_start || look_for_end);
@ -531,22 +531,23 @@ namespace {
else {
parse_specifier = true;
}
end = date_interval_t::add_duration(start, duration);
if (parse_specifier)
parse_inclusion_specifier(word, &start, &end);
else
end = date_interval_t::add_duration(start, *duration);
if (type == _("last")) {
start = date_interval_t::subtract_duration(start, duration);
end = date_interval_t::subtract_duration(end, duration);
if (type == _("last") && duration) {
start = date_interval_t::subtract_duration(start, *duration);
end = date_interval_t::subtract_duration(end, *duration);
}
else if (type == _("next")) {
start = date_interval_t::add_duration(start, duration);
end = date_interval_t::add_duration(end, duration);
else if (type == _("next") && duration) {
start = date_interval_t::add_duration(start, *duration);
end = date_interval_t::add_duration(end, *duration);
}
if (look_for_start) interval.start = start;
if (look_for_end) interval.end = end;
if (look_for_start && is_valid(start)) interval.start = start;
if (look_for_end && is_valid(end)) interval.end = end;
}
}