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:
Jon Severinsson 2012-10-09 15:44:42 +02:00 committed by The Qt Project
parent 85c47eed6b
commit 4ec79a151f

View File

@ -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);
}
/*!