From 4ec79a151f9007d739b0970c062eb452133be4d6 Mon Sep 17 00:00:00 2001 From: Jon Severinsson Date: Tue, 9 Oct 2012 15:44:42 +0200 Subject: 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 --- src/corelib/tools/qdatetime.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) (limited to 'src/corelib/tools/qdatetime.cpp') diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index 0e3da78280..cbdd183f33 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -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); } /*! -- cgit v1.2.3