summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2015-01-22 09:33:11 +0100
committerMarc Mutz <marc.mutz@kdab.com>2015-02-14 08:13:38 +0000
commitdb569428c62751aba1aebea658f8cbe3297b16d4 (patch)
tree670d993f73f82b061ba97cfc20bb8e197b86f8c2 /src
parent9a34fed72808b0bd19c3c287099bbc27fe66cc9a (diff)
QDateTimePrivate: enable read caching on m_status in setDateTime()
Help the compiler by building the new status flags in a local instead of a member variable. Enables value tracking for that piece of data across several non-inline function calls, leading to less redundant reads through this->. Effects on Linux GCC 4.9 stripped release builds: text -248B data +-0B relocs +-0 Change-Id: I2db21439464ad0fff8163a908de3b15df7c4ab6d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/tools/qdatetime.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index ef3b4a3612..aa37f8c9da 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -2682,29 +2682,29 @@ void QDateTimePrivate::setDateTime(const QDate &date, const QTime &time)
if (!useTime.isValid() && date.isValid())
useTime = QTime::fromMSecsSinceStartOfDay(0);
- // Reset the status
- m_status = 0;
+ StatusFlags newStatus;
// Set date value and status
qint64 days = 0;
if (date.isValid()) {
days = date.toJulianDay() - JULIAN_DAY_FOR_EPOCH;
- m_status = ValidDate;
+ newStatus = ValidDate;
} else if (date.isNull()) {
- m_status = NullDate;
+ newStatus = NullDate;
}
// Set time value and status
int ds = 0;
if (useTime.isValid()) {
ds = useTime.msecsSinceStartOfDay();
- m_status = m_status | ValidTime;
+ newStatus |= ValidTime;
} else if (time.isNull()) {
- m_status = m_status | NullTime;
+ newStatus |= NullTime;
}
// Set msecs serial value
m_msecs = (days * MSECS_PER_DAY) + ds;
+ m_status = newStatus;
// Set if date and time are valid
checkValidDateTime();