Commit 616862e8 authored by Omer Katz's avatar Omer Katz Committed by Commit Bot

Replace HeapHashSet with HeapHashMap

This is part of an ongoing effort to simplify heap collections
and limit the types they can support (specifically, this CL
removes the only existing non-member usage of HeapHashSet).

Bug: 1047147
Change-Id: I2d408a5bbace633002c354c17b13d892e1938dec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2025427Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#739239}
parent d3fb8e80
...@@ -15,11 +15,22 @@ StyleRuleUsageTracker::RuleListByStyleSheet StyleRuleUsageTracker::TakeDelta() { ...@@ -15,11 +15,22 @@ StyleRuleUsageTracker::RuleListByStyleSheet StyleRuleUsageTracker::TakeDelta() {
return result; return result;
} }
bool StyleRuleUsageTracker::InsertToUsedRulesMap(
const CSSStyleSheet* parent_sheet,
const StyleRule* rule) {
HeapHashSet<Member<const StyleRule>>* set =
used_rules_
.insert(parent_sheet,
MakeGarbageCollected<HeapHashSet<Member<const StyleRule>>>())
.stored_value->value;
return set->insert(rule).is_new_entry;
}
void StyleRuleUsageTracker::Track(const CSSStyleSheet* parent_sheet, void StyleRuleUsageTracker::Track(const CSSStyleSheet* parent_sheet,
const StyleRule* rule) { const StyleRule* rule) {
if (!parent_sheet) if (!parent_sheet)
return; return;
if (!used_rules_.insert(std::make_pair(parent_sheet, rule)).is_new_entry) if (!InsertToUsedRulesMap(parent_sheet, rule))
return; return;
auto it = used_rules_delta_.find(parent_sheet); auto it = used_rules_delta_.find(parent_sheet);
if (it != used_rules_delta_.end()) { if (it != used_rules_delta_.end()) {
......
...@@ -22,7 +22,10 @@ class StyleRuleUsageTracker : public GarbageCollected<StyleRuleUsageTracker> { ...@@ -22,7 +22,10 @@ class StyleRuleUsageTracker : public GarbageCollected<StyleRuleUsageTracker> {
void Trace(blink::Visitor*); void Trace(blink::Visitor*);
private: private:
HeapHashSet<std::pair<Member<const CSSStyleSheet>, Member<const StyleRule>>> bool InsertToUsedRulesMap(const CSSStyleSheet*, const StyleRule*);
HeapHashMap<Member<const CSSStyleSheet>,
Member<HeapHashSet<Member<const StyleRule>>>>
used_rules_; used_rules_;
RuleListByStyleSheet used_rules_delta_; RuleListByStyleSheet used_rules_delta_;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment