Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: Source/core/css/CSSRuleList.h

Issue 953693002: InlinedVisitor: Migrate css to use inlined tracing (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * (C) 2002-2003 Dirk Mueller (mueller@kde.org) 3 * (C) 2002-2003 Dirk Mueller (mueller@kde.org)
4 * Copyright (C) 2002, 2006, 2012 Apple Computer, Inc. 4 * Copyright (C) 2002, 2006, 2012 Apple Computer, Inc.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 #if !ENABLE(OILPAN) 43 #if !ENABLE(OILPAN)
44 virtual void ref() = 0; 44 virtual void ref() = 0;
45 virtual void deref() = 0; 45 virtual void deref() = 0;
46 #endif 46 #endif
47 47
48 virtual unsigned length() const = 0; 48 virtual unsigned length() const = 0;
49 virtual CSSRule* item(unsigned index) const = 0; 49 virtual CSSRule* item(unsigned index) const = 0;
50 50
51 virtual CSSStyleSheet* styleSheet() const = 0; 51 virtual CSSStyleSheet* styleSheet() const = 0;
52 52
53 virtual void trace(Visitor*) { } 53 DEFINE_INLINE_VIRTUAL_TRACE() { }
54 54
55 protected: 55 protected:
56 CSSRuleList() { } 56 CSSRuleList() { }
57 }; 57 };
58 58
59 class StaticCSSRuleList final : public CSSRuleList { 59 class StaticCSSRuleList final : public CSSRuleList {
60 public: 60 public:
61 static PassRefPtrWillBeRawPtr<StaticCSSRuleList> create() 61 static PassRefPtrWillBeRawPtr<StaticCSSRuleList> create()
62 { 62 {
63 return adoptRefWillBeNoop(new StaticCSSRuleList()); 63 return adoptRefWillBeNoop(new StaticCSSRuleList());
64 } 64 }
65 65
66 #if !ENABLE(OILPAN) 66 #if !ENABLE(OILPAN)
67 virtual void ref() override { ++m_refCount; } 67 virtual void ref() override { ++m_refCount; }
68 virtual void deref() override; 68 virtual void deref() override;
69 #endif 69 #endif
70 70
71 WillBeHeapVector<RefPtrWillBeMember<CSSRule> >& rules() { return m_rules; } 71 WillBeHeapVector<RefPtrWillBeMember<CSSRule> >& rules() { return m_rules; }
72 72
73 virtual CSSStyleSheet* styleSheet() const override { return 0; } 73 virtual CSSStyleSheet* styleSheet() const override { return 0; }
74 74
75 virtual void trace(Visitor*) override; 75 DECLARE_VIRTUAL_TRACE();
76 76
77 private: 77 private:
78 StaticCSSRuleList(); 78 StaticCSSRuleList();
79 virtual ~StaticCSSRuleList(); 79 virtual ~StaticCSSRuleList();
80 80
81 virtual unsigned length() const override { return m_rules.size(); } 81 virtual unsigned length() const override { return m_rules.size(); }
82 virtual CSSRule* item(unsigned index) const override { return index < m_rule s.size() ? m_rules[index].get() : 0; } 82 virtual CSSRule* item(unsigned index) const override { return index < m_rule s.size() ? m_rules[index].get() : 0; }
83 83
84 WillBeHeapVector<RefPtrWillBeMember<CSSRule> > m_rules; 84 WillBeHeapVector<RefPtrWillBeMember<CSSRule> > m_rules;
85 #if !ENABLE(OILPAN) 85 #if !ENABLE(OILPAN)
86 unsigned m_refCount; 86 unsigned m_refCount;
87 #endif 87 #endif
88 }; 88 };
89 89
90 template <class Rule> 90 template <class Rule>
91 class LiveCSSRuleList final : public CSSRuleList { 91 class LiveCSSRuleList final : public CSSRuleList {
92 public: 92 public:
93 static PassOwnPtrWillBeRawPtr<LiveCSSRuleList> create(Rule* rule) 93 static PassOwnPtrWillBeRawPtr<LiveCSSRuleList> create(Rule* rule)
94 { 94 {
95 return adoptPtrWillBeNoop(new LiveCSSRuleList(rule)); 95 return adoptPtrWillBeNoop(new LiveCSSRuleList(rule));
96 } 96 }
97 97
98 #if !ENABLE(OILPAN) 98 #if !ENABLE(OILPAN)
99 virtual void ref() override { m_rule->ref(); } 99 virtual void ref() override { m_rule->ref(); }
100 virtual void deref() override { m_rule->deref(); } 100 virtual void deref() override { m_rule->deref(); }
101 #endif 101 #endif
102 102
103 virtual void trace(Visitor* visitor) override 103 DEFINE_INLINE_VIRTUAL_TRACE()
104 { 104 {
105 visitor->trace(m_rule); 105 visitor->trace(m_rule);
106 CSSRuleList::trace(visitor); 106 CSSRuleList::trace(visitor);
107 } 107 }
108 108
109 private: 109 private:
110 LiveCSSRuleList(Rule* rule) : m_rule(rule) { } 110 LiveCSSRuleList(Rule* rule) : m_rule(rule) { }
111 111
112 virtual unsigned length() const override { return m_rule->length(); } 112 virtual unsigned length() const override { return m_rule->length(); }
113 virtual CSSRule* item(unsigned index) const override { return m_rule->item(i ndex); } 113 virtual CSSRule* item(unsigned index) const override { return m_rule->item(i ndex); }
114 virtual CSSStyleSheet* styleSheet() const override { return m_rule->parentSt yleSheet(); } 114 virtual CSSStyleSheet* styleSheet() const override { return m_rule->parentSt yleSheet(); }
115 115
116 RawPtrWillBeMember<Rule> m_rule; 116 RawPtrWillBeMember<Rule> m_rule;
117 }; 117 };
118 118
119 } // namespace blink 119 } // namespace blink
120 120
121 #endif // CSSRuleList_h 121 #endif // CSSRuleList_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698