Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 550 Value result; | 550 Value result; |
| 551 bool ok = parseValueExpression(tokens, 0, &index, &result); | 551 bool ok = parseValueExpression(tokens, 0, &index, &result); |
| 552 ASSERT_WITH_SECURITY_IMPLICATION(index <= tokens->size()); | 552 ASSERT_WITH_SECURITY_IMPLICATION(index <= tokens->size()); |
| 553 if (!ok || index != tokens->size()) | 553 if (!ok || index != tokens->size()) |
| 554 return nullptr; | 554 return nullptr; |
| 555 return result.value; | 555 return result.value; |
| 556 } | 556 } |
| 557 | 557 |
| 558 private: | 558 private: |
| 559 struct Value { | 559 struct Value { |
| 560 DISALLOW_ALLOCATION(); // Is only ever stack allocated. | 560 DISALLOW_ALLOCATION(); // Is only ever stack allocated. |
|
haraken
2014/03/24 13:52:54
Can this be STACK_ALLOCATED() ?
Mads Ager (chromium)
2014/03/24 14:27:30
If the comments are true both this and CSSCalcExpr
| |
| 561 public: | 561 public: |
| 562 RefPtrWillBeRawPtr<CSSCalcExpressionNode> value; | 562 RefPtrWillBeRawPtr<CSSCalcExpressionNode> value = nullptr; |
|
haraken
2014/03/24 13:52:54
Then this could be a RefPtrWillBeMember.
Mads Ager (chromium)
2014/03/24 14:27:30
Done.
| |
| 563 }; | 563 }; |
| 564 | 564 |
| 565 char operatorValue(CSSParserValueList* tokens, unsigned index) | 565 char operatorValue(CSSParserValueList* tokens, unsigned index) |
| 566 { | 566 { |
| 567 if (index >= tokens->size()) | 567 if (index >= tokens->size()) |
| 568 return 0; | 568 return 0; |
| 569 CSSParserValue* value = tokens->valueAt(index); | 569 CSSParserValue* value = tokens->valueAt(index); |
| 570 if (value->unit != CSSParserValue::Operator) | 570 if (value->unit != CSSParserValue::Operator) |
| 571 return 0; | 571 return 0; |
| 572 | 572 |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 737 ASSERT_NOT_REACHED(); | 737 ASSERT_NOT_REACHED(); |
| 738 return nullptr; | 738 return nullptr; |
| 739 } | 739 } |
| 740 ASSERT_NOT_REACHED(); | 740 ASSERT_NOT_REACHED(); |
| 741 return nullptr; | 741 return nullptr; |
| 742 } | 742 } |
| 743 | 743 |
| 744 PassRefPtrWillBeRawPtr<CSSCalcValue> CSSCalcValue::create(CSSParserString name, CSSParserValueList* parserValueList, ValueRange range) | 744 PassRefPtrWillBeRawPtr<CSSCalcValue> CSSCalcValue::create(CSSParserString name, CSSParserValueList* parserValueList, ValueRange range) |
| 745 { | 745 { |
| 746 CSSCalcExpressionNodeParser parser; | 746 CSSCalcExpressionNodeParser parser; |
| 747 RefPtrWillBeRawPtr<CSSCalcExpressionNode> expression; | 747 RefPtrWillBeRawPtr<CSSCalcExpressionNode> expression = nullptr; |
| 748 | 748 |
| 749 if (equalIgnoringCase(name, "calc(") || equalIgnoringCase(name, "-webkit-cal c(")) | 749 if (equalIgnoringCase(name, "calc(") || equalIgnoringCase(name, "-webkit-cal c(")) |
| 750 expression = parser.parseCalc(parserValueList); | 750 expression = parser.parseCalc(parserValueList); |
| 751 // FIXME calc (http://webkit.org/b/16662) Add parsing for min and max here | 751 // FIXME calc (http://webkit.org/b/16662) Add parsing for min and max here |
| 752 | 752 |
| 753 return expression ? adoptRefWillBeRefCountedGarbageCollected(new CSSCalcValu e(expression, range)) : nullptr; | 753 return expression ? adoptRefWillBeRefCountedGarbageCollected(new CSSCalcValu e(expression, range)) : nullptr; |
| 754 } | 754 } |
| 755 | 755 |
| 756 PassRefPtrWillBeRawPtr<CSSCalcValue> CSSCalcValue::create(PassRefPtrWillBeRawPtr <CSSCalcExpressionNode> expression, ValueRange range) | 756 PassRefPtrWillBeRawPtr<CSSCalcValue> CSSCalcValue::create(PassRefPtrWillBeRawPtr <CSSCalcExpressionNode> expression, ValueRange range) |
| 757 { | 757 { |
| 758 return adoptRefWillBeRefCountedGarbageCollected(new CSSCalcValue(expression, range)); | 758 return adoptRefWillBeRefCountedGarbageCollected(new CSSCalcValue(expression, range)); |
| 759 } | 759 } |
| 760 | 760 |
| 761 void CSSCalcValue::traceAfterDispatch(Visitor* visitor) | 761 void CSSCalcValue::traceAfterDispatch(Visitor* visitor) |
| 762 { | 762 { |
| 763 visitor->trace(m_expression); | 763 visitor->trace(m_expression); |
| 764 CSSValue::traceAfterDispatch(visitor); | 764 CSSValue::traceAfterDispatch(visitor); |
| 765 } | 765 } |
| 766 | 766 |
| 767 } // namespace WebCore | 767 } // namespace WebCore |
| OLD | NEW |