bool VLPrefixSet::GetSmallestPrefix(nsDependentCSubstring& aOutString) { PrefixString* pick = nullptr; for (auto iter = mMap.ConstIter(); !iter.Done(); iter.Next()) { PrefixString* str = iter.Data(); if (!str->get()) { continue; } if (aOutString.IsEmpty()) { aOutString.Rebind(str->get(), iter.Key()); pick = str; continue; } nsDependentCSubstring cur(str->get(), iter.Key()); if (cur < aOutString) { aOutString.Rebind(str->get(), iter.Key()); pick = str; } } if (pick) { pick->next(); } return pick != nullptr; }
void VLPrefixSet::Merge(PrefixStringMap& aPrefixMap) { for (auto iter = mMap.ConstIter(); !iter.Done(); iter.Next()) { nsCString* prefixString = aPrefixMap.LookupOrAdd(iter.Key()); PrefixString* str = iter.Data(); if (str->get()) { prefixString->Append(str->get(), str->remaining()); } } }