summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qdatetime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/tools/qdatetime.cpp')
-rw-r--r--src/corelib/tools/qdatetime.cpp17
1 files changed, 3 insertions, 14 deletions
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);
}
/*!