Workaround a bug in mktime on QNX
Under certain circumstances, mktime failes to convert the tm struct into secs since epoch. This is a workaround and fixes the qdatetime and qqmllocale autotests. Change-Id: If99385142a049c5315429dca177df7fc8e947d55 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Wolfgang Bremer <wbremer@rim.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
4f60ff6ad3
commit
56820382f2
@ -4050,6 +4050,16 @@ static void localToUtc(QDate &date, QTime &time, int isdst)
|
||||
_tzset();
|
||||
#endif
|
||||
time_t secsSince1Jan1970UTC = mktime(&localTM);
|
||||
#ifdef Q_OS_QNX
|
||||
//mktime sometimes fails on QNX. Following workaround converts the date and time then manually
|
||||
if (secsSince1Jan1970UTC == (time_t)-1) {
|
||||
QDateTime tempTime = QDateTime(date, time, Qt::UTC);;
|
||||
tempTime = tempTime.addMSecs(timezone * 1000);
|
||||
date = tempTime.date();
|
||||
time = tempTime.time();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
tm *brokenDown = 0;
|
||||
#if defined(Q_OS_WINCE)
|
||||
|
Loading…
x
Reference in New Issue
Block a user