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

Unified Diff: Source/core/css/CSSCalculationValue.h

Issue 166443003: Move CSSCalcExpressionNode and subclasses to the oilpan heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Review feedback Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/animation/AnimatableLength.cpp ('k') | Source/core/css/CSSCalculationValue.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/CSSCalculationValue.h
diff --git a/Source/core/css/CSSCalculationValue.h b/Source/core/css/CSSCalculationValue.h
index a9fafd2334bb425abdd4db6235d33ee00bf99f8a..836cffcd72de9d2d8e271f3fc078bbcc52a069fc 100644
--- a/Source/core/css/CSSCalculationValue.h
+++ b/Source/core/css/CSSCalculationValue.h
@@ -56,7 +56,8 @@ enum CalculationCategory {
CalcOther
};
-class CSSCalcExpressionNode : public RefCounted<CSSCalcExpressionNode> {
+class CSSCalcExpressionNode : public RefCountedWillBeGarbageCollected<CSSCalcExpressionNode> {
+ DECLARE_GC_INFO;
public:
enum Type {
CssCalcPrimitiveValue = 1,
@@ -76,6 +77,8 @@ public:
virtual CSSPrimitiveValue::UnitTypes primitiveType() const = 0;
bool isInteger() const { return m_isInteger; }
+ virtual void trace(Visitor*) { }
+
protected:
CSSCalcExpressionNode(CalculationCategory category, bool isInteger)
: m_category(category)
@@ -90,13 +93,13 @@ protected:
class CSSCalcValue : public CSSValue {
public:
static PassRefPtrWillBeRawPtr<CSSCalcValue> create(CSSParserString name, CSSParserValueList*, ValueRange);
- static PassRefPtrWillBeRawPtr<CSSCalcValue> create(PassRefPtr<CSSCalcExpressionNode>, ValueRange = ValueRangeAll);
+ static PassRefPtrWillBeRawPtr<CSSCalcValue> create(PassRefPtrWillBeRawPtr<CSSCalcExpressionNode>, ValueRange = ValueRangeAll);
static PassRefPtrWillBeRawPtr<CSSCalcValue> create(const CalculationValue* value, float zoom) { return adoptRefCountedWillBeRefCountedGarbageCollected(new CSSCalcValue(value, zoom)); }
- static PassRefPtr<CSSCalcExpressionNode> createExpressionNode(PassRefPtr<CSSPrimitiveValue>, bool isInteger = false);
- static PassRefPtr<CSSCalcExpressionNode> createExpressionNode(PassRefPtr<CSSCalcExpressionNode>, PassRefPtr<CSSCalcExpressionNode>, CalcOperator);
- static PassRefPtr<CSSCalcExpressionNode> createExpressionNode(const CalcExpressionNode*, float zoom);
- static PassRefPtr<CSSCalcExpressionNode> createExpressionNode(const Length&, float zoom);
+ static PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> createExpressionNode(PassRefPtrWillBeRawPtr<CSSPrimitiveValue>, bool isInteger = false);
+ static PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> createExpressionNode(PassRefPtrWillBeRawPtr<CSSCalcExpressionNode>, PassRefPtrWillBeRawPtr<CSSCalcExpressionNode>, CalcOperator);
+ static PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> createExpressionNode(const CalcExpressionNode*, float zoom);
+ static PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> createExpressionNode(const Length&, float zoom);
PassRefPtr<CalculationValue> toCalcValue(const CSSToLengthConversionData& conversionData) const
{
@@ -113,10 +116,10 @@ public:
String customCSSText() const;
bool equals(const CSSCalcValue&) const;
- void traceAfterDispatch(Visitor* visitor) { CSSValue::traceAfterDispatch(visitor); }
+ void traceAfterDispatch(Visitor*);
private:
- CSSCalcValue(PassRefPtr<CSSCalcExpressionNode> expression, ValueRange range)
+ CSSCalcValue(PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> expression, ValueRange range)
: CSSValue(CalculationClass)
, m_expression(expression)
, m_nonNegative(range == ValueRangeNonNegative)
@@ -131,7 +134,7 @@ private:
double clampToPermittedRange(double) const;
- const RefPtr<CSSCalcExpressionNode> m_expression;
+ const RefPtrWillBeMember<CSSCalcExpressionNode> m_expression;
const bool m_nonNegative;
};
« no previous file with comments | « Source/core/animation/AnimatableLength.cpp ('k') | Source/core/css/CSSCalculationValue.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698