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

Side by Side Diff: Source/core/css/CSSCalculationValue.cpp

Issue 108653006: Assert that convertToLength succeeds instead of returning Length(Undefined) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebased Created 7 years 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
« no previous file with comments | « no previous file | Source/core/css/CSSPrimitiveValueMappings.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 } 224 }
225 225
226 virtual PassOwnPtr<CalcExpressionNode> toCalcValue(const CSSToLengthConversi onData& conversionData) const 226 virtual PassOwnPtr<CalcExpressionNode> toCalcValue(const CSSToLengthConversi onData& conversionData) const
227 { 227 {
228 switch (m_category) { 228 switch (m_category) {
229 case CalcNumber: 229 case CalcNumber:
230 return adoptPtr(new CalcExpressionNumber(m_value->getFloatValue())); 230 return adoptPtr(new CalcExpressionNumber(m_value->getFloatValue()));
231 case CalcLength: 231 case CalcLength:
232 return adoptPtr(new CalcExpressionLength(Length(m_value->computeLeng th<float>(conversionData), WebCore::Fixed))); 232 return adoptPtr(new CalcExpressionLength(Length(m_value->computeLeng th<float>(conversionData), WebCore::Fixed)));
233 case CalcPercent: 233 case CalcPercent:
234 case CalcPercentLength: { 234 case CalcPercentLength:
235 CSSPrimitiveValue* primitiveValue = m_value.get(); 235 return adoptPtr(new CalcExpressionLength(m_value->convertToLength<Fi xedConversion | PercentConversion>(conversionData)));
236 return adoptPtr(new CalcExpressionLength(primitiveValue
237 ? primitiveValue->convertToLength<FixedConversion | PercentConve rsion>(conversionData)
238 : Length(Undefined)));
239 }
240 // Only types that could be part of a Length expression can be converted 236 // Only types that could be part of a Length expression can be converted
241 // to a CalcExpressionNode. CalcPercentNumber makes no sense as a Length . 237 // to a CalcExpressionNode. CalcPercentNumber makes no sense as a Length .
242 case CalcPercentNumber: 238 case CalcPercentNumber:
243 case CalcVariable: 239 case CalcVariable:
244 case CalcOther: 240 case CalcOther:
245 ASSERT_NOT_REACHED(); 241 ASSERT_NOT_REACHED();
246 } 242 }
247 return nullptr; 243 return nullptr;
248 } 244 }
249 245
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 777
782 return expression ? adoptRef(new CSSCalcValue(expression, range)) : 0; 778 return expression ? adoptRef(new CSSCalcValue(expression, range)) : 0;
783 } 779 }
784 780
785 PassRefPtr<CSSCalcValue> CSSCalcValue::create(PassRefPtr<CSSCalcExpressionNode> expression, ValueRange range) 781 PassRefPtr<CSSCalcValue> CSSCalcValue::create(PassRefPtr<CSSCalcExpressionNode> expression, ValueRange range)
786 { 782 {
787 return adoptRef(new CSSCalcValue(expression, range)); 783 return adoptRef(new CSSCalcValue(expression, range));
788 } 784 }
789 785
790 } // namespace WebCore 786 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/core/css/CSSPrimitiveValueMappings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698