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; |
}; |