Simplify QDate::addDays() impementation
No need to check for overflows since the change to qint64. as less than half the qint64 range is a valid julian day, any overflow will be detected as an invalid date anyway. Change-Id: I3b6cad24e245ed9418c5804484f846b0b692153a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
85c47eed6b
commit
4ec79a151f
@ -917,20 +917,9 @@ QDate QDate::addDays(qint64 ndays) const
|
||||
if (isNull())
|
||||
return QDate();
|
||||
|
||||
QDate d;
|
||||
quint64 diff = 0;
|
||||
|
||||
// this is basically "d.jd = jd + ndays" with checks for integer overflow
|
||||
// Due to limits on minJd() and maxJd() we know diff will never overflow
|
||||
if (ndays >= 0)
|
||||
diff = maxJd() - jd;
|
||||
else
|
||||
diff = jd - minJd();
|
||||
|
||||
if ((quint64)qAbs(ndays) <= diff)
|
||||
d.jd = jd + ndays;
|
||||
|
||||
return d;
|
||||
// Due to limits on minJd() and maxJd() we know that any overflow
|
||||
// will be invalid and caught by fromJulianDay().
|
||||
return fromJulianDay(jd + ndays);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
Loading…
Reference in New Issue
Block a user