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