mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 11:55:49 +00:00
Bug 1409152. Add an nsTArray::ContainsSorted method. r=froydnj
This commit is contained in:
parent
661d20b507
commit
fb684cc726
@ -174,7 +174,7 @@ TrackUnionStream::TrackUnionStream()
|
||||
TrackID id;
|
||||
if (IsTrackIDExplicit(id = aPort->GetDestinationTrackId())) {
|
||||
MOZ_ASSERT(id >= mNextAvailableTrackID &&
|
||||
mUsedTracks.BinaryIndexOf(id) == mUsedTracks.NoIndex,
|
||||
!mUsedTracks.ContainsSorted(id),
|
||||
"Desired destination id taken. Only provide a destination ID "
|
||||
"if you can assure its availability, or we may not be able "
|
||||
"to bind to the correct DOM-side track.");
|
||||
@ -191,7 +191,7 @@ TrackUnionStream::TrackUnionStream()
|
||||
mUsedTracks.InsertElementSorted(id);
|
||||
} else if ((id = aTrack->GetID()) &&
|
||||
id > mNextAvailableTrackID &&
|
||||
mUsedTracks.BinaryIndexOf(id) == mUsedTracks.NoIndex) {
|
||||
!mUsedTracks.ContainsSorted(id)) {
|
||||
// Input id available. Mark it used in mUsedTracks.
|
||||
mUsedTracks.InsertElementSorted(id);
|
||||
} else {
|
||||
|
@ -274,7 +274,7 @@ nsDocumentRuleResultCacheKey::Matches(
|
||||
|
||||
#ifdef DEBUG
|
||||
for (css::DocumentRule* rule : mMatchingRules) {
|
||||
MOZ_ASSERT(aRules.BinaryIndexOf(rule) != aRules.NoIndex,
|
||||
MOZ_ASSERT(aRules.ContainsSorted(rule),
|
||||
"aRules must contain all rules in mMatchingRules");
|
||||
}
|
||||
#endif
|
||||
|
@ -1416,7 +1416,7 @@ PaintRowGroupBackgroundByColIdx(nsTableRowGroupFrame* aRowGroup,
|
||||
}
|
||||
for (nsTableCellFrame* cell = row->GetFirstCell(); cell; cell = cell->GetNextCell()) {
|
||||
uint32_t curColIdx = cell->ColIndex();
|
||||
if (!aColIdx.Contains(curColIdx)) {
|
||||
if (!aColIdx.ContainsSorted(curColIdx)) {
|
||||
if (curColIdx > aColIdx.LastElement()) {
|
||||
// We can just stop looking at this row.
|
||||
break;
|
||||
|
@ -61,7 +61,7 @@ public:
|
||||
|
||||
bool Contains(const nsAtom* aAtom) const
|
||||
{
|
||||
return mElems.BinaryIndexOf(aAtom) != mElems.NoIndex;
|
||||
return mElems.ContainsSorted(aAtom);
|
||||
}
|
||||
|
||||
bool Intersects(const AtomSet& aOther) const;
|
||||
|
@ -582,8 +582,7 @@ LookupCacheV2::Has(const Completion& aCompletion,
|
||||
if (found) {
|
||||
*aHas = true;
|
||||
*aMatchLength = PREFIX_SIZE;
|
||||
} else if (mUpdateCompletions.BinaryIndexOf(aCompletion) !=
|
||||
nsTArray<Completion>::NoIndex) {
|
||||
} else if (mUpdateCompletions.ContainsSorted(aCompletion)) {
|
||||
// Completions is found in database, confirm the result
|
||||
*aHas = true;
|
||||
*aMatchLength = COMPLETE_SIZE;
|
||||
|
@ -1149,6 +1149,13 @@ public:
|
||||
return IndexOf(aItem, 0, aComp) != NoIndex;
|
||||
}
|
||||
|
||||
// Like Contains(), but assumes a sorted array.
|
||||
template<class Item, class Comparator>
|
||||
bool ContainsSorted(const Item& aItem, const Comparator& aComp) const
|
||||
{
|
||||
return BinaryIndexOf(aItem, aComp) != NoIndex;
|
||||
}
|
||||
|
||||
// This method searches for the first element in this array that is equal
|
||||
// to the given element. This method assumes that 'operator==' is defined
|
||||
// for elem_type.
|
||||
@ -1160,6 +1167,13 @@ public:
|
||||
return IndexOf(aItem) != NoIndex;
|
||||
}
|
||||
|
||||
// Like Contains(), but assumes a sorted array.
|
||||
template<class Item>
|
||||
bool ContainsSorted(const Item& aItem) const
|
||||
{
|
||||
return BinaryIndexOf(aItem) != NoIndex;
|
||||
}
|
||||
|
||||
// This method searches for the offset of the first element in this
|
||||
// array that is equal to the given element.
|
||||
// @param aItem The item to search for.
|
||||
|
Loading…
Reference in New Issue
Block a user