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