Bug 1745972 Comment 33 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

(In reply to Valentin Gosu [:valentin] (he/him) from comment #32)
> `mIndex->mFrecencyArray.RemoveRecord(entry->mRec, mProofOfLock);` actually release mRec? 

It [seems to be the case that we null out `mRecs[idx]`](https://searchfox.org/mozilla-central/rev/59f0bf3c13dd455d9f5415b89178de701ea6b850/netwerk/cache2/CacheIndex.cpp#3370), where `idx` comes from `entry->mRec`. Being `mRecs` an `nsTArray<RefPtr<CacheIndexRecordWrapper>>` an array of `RefPtr` this might delete something unexpectedly, indeed.
(In reply to Valentin Gosu [:valentin] (he/him) from comment #32)
> `mIndex->mFrecencyArray.RemoveRecord(entry->mRec, mProofOfLock);` actually release mRec? 

It [seems to be the case that we null out `mRecs[idx]`](https://searchfox.org/mozilla-central/rev/59f0bf3c13dd455d9f5415b89178de701ea6b850/netwerk/cache2/CacheIndex.cpp#3370), where `idx` comes from `entry->mRec`. Being `mRecs` an `nsTArray<RefPtr<CacheIndexRecordWrapper>>` an array of `RefPtr` this might delete something unexpectedly, indeed.

Not sure about the level of indirection here, though: Keeping a `RefPtr` for `entry->mRec` might actually not refer to the same object we potentially delete?

Back to Bug 1745972 Comment 33