Correct a misguided assertion in QTzTimeZonePrivate
Without ICU, the TZ-DB backend for time-zones tripped over an assertion when running tst_QTimeZone::stressTest(), which happened to probe a zone between its last transition and the first transition of a POSIX rule that followed it. The code assumed there was no interval between these two; apparently, there can be. Change-Id: I3d0ad41fec0a255db2f9bfac54d33aa9b83938e8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
0211774c68
commit
1119cd4ece
@ -1022,8 +1022,10 @@ QTimeZonePrivate::Data QTzTimeZonePrivate::previousTransition(qint64 beforeMSecs
|
|||||||
[beforeMSecsSinceEpoch] (const QTimeZonePrivate::Data &at) {
|
[beforeMSecsSinceEpoch] (const QTimeZonePrivate::Data &at) {
|
||||||
return at.atMSecsSinceEpoch < beforeMSecsSinceEpoch;
|
return at.atMSecsSinceEpoch < beforeMSecsSinceEpoch;
|
||||||
});
|
});
|
||||||
Q_ASSERT(it > posixTrans.cbegin());
|
if (it > posixTrans.cbegin())
|
||||||
return *--it;
|
return *--it;
|
||||||
|
// else: it fell between the last transition and the first of the POSIX rule.
|
||||||
|
return dataForTzTransition(m_tranTimes.last());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise if we can find a valid tran then use its rule
|
// Otherwise if we can find a valid tran then use its rule
|
||||||
|
Loading…
x
Reference in New Issue
Block a user