Bug 1443316 - part 1 - micro-optimize purging expired preflight cache entries; r=ckerschb

The entries in mMethods and mHeaders aren't sorted in any special way,
so we can remove expired entries using UnorderedRemoveElementAt, which
is faster than RemoveElementAt.
This commit is contained in:
Nathan Froyd 2018-03-07 13:39:54 -05:00
Родитель e468fac775
Коммит 4e03eee08a
1 изменённых файлов: 8 добавлений и 5 удалений

Просмотреть файл

@ -187,15 +187,18 @@ static bool EnsurePreflightCache()
void
nsPreflightCache::CacheEntry::PurgeExpired(TimeStamp now)
{
uint32_t i;
for (i = 0; i < mMethods.Length(); ++i) {
for (uint32_t i = 0, len = mMethods.Length(); i < len; ++i) {
if (now >= mMethods[i].expirationTime) {
mMethods.RemoveElementAt(i--);
mMethods.UnorderedRemoveElementAt(i);
--i; // Examine the element again, if necessary.
--len;
}
}
for (i = 0; i < mHeaders.Length(); ++i) {
for (uint32_t i = 0, len = mHeaders.Length(); i < len; ++i) {
if (now >= mHeaders[i].expirationTime) {
mHeaders.RemoveElementAt(i--);
mHeaders.UnorderedRemoveElementAt(i);
--i; // Examine the element again, if necessary.
--len;
}
}
}