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

Side by Side Diff: Source/core/css/resolver/StyleBuilderConverter.cpp

Issue 1318543010: Change first() and second() in CSSPairValue to return const references (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Review feedback Created 5 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/css/resolver/CSSToStyleMap.cpp ('k') | no next file » | 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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * * Redistributions of source code must retain the above copyright 4 * * Redistributions of source code must retain the above copyright
5 * notice, this list of conditions and the following disclaimer. 5 * notice, this list of conditions and the following disclaimer.
6 * * Redistributions in binary form must reproduce the above 6 * * Redistributions in binary form must reproduce the above
7 * copyright notice, this list of conditions and the following disclaimer 7 * copyright notice, this list of conditions and the following disclaimer
8 * in the documentation and/or other materials provided with the 8 * in the documentation and/or other materials provided with the
9 * distribution. 9 * distribution.
10 * * Neither the name of Google Inc. nor the names of its 10 * * Neither the name of Google Inc. nor the names of its
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 if (angle > 135.0f && angle <= 225.0f) 330 if (angle > 135.0f && angle <= 225.0f)
331 return GO_180DEG; 331 return GO_180DEG;
332 return GO_270DEG; 332 return GO_270DEG;
333 } 333 }
334 334
335 StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData( StyleResolverState&, CSSValue* value) 335 StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData( StyleResolverState&, CSSValue* value)
336 { 336 {
337 StyleSelfAlignmentData alignmentData = ComputedStyle::initialSelfAlignment() ; 337 StyleSelfAlignmentData alignmentData = ComputedStyle::initialSelfAlignment() ;
338 if (value->isValuePair()) { 338 if (value->isValuePair()) {
339 const CSSValuePair* pair = toCSSValuePair(value); 339 const CSSValuePair* pair = toCSSValuePair(value);
340 if (toCSSPrimitiveValue(pair->first())->getValueID() == CSSValueLegacy) { 340 if (toCSSPrimitiveValue(pair->first()).getValueID() == CSSValueLegacy) {
341 alignmentData.setPositionType(LegacyPosition); 341 alignmentData.setPositionType(LegacyPosition);
342 alignmentData.setPosition(*toCSSPrimitiveValue(pair->second())); 342 alignmentData.setPosition(toCSSPrimitiveValue(pair->second()));
343 } else { 343 } else {
344 alignmentData.setPosition(*toCSSPrimitiveValue(pair->first())); 344 alignmentData.setPosition(toCSSPrimitiveValue(pair->first()));
345 alignmentData.setOverflow(*toCSSPrimitiveValue(pair->second())); 345 alignmentData.setOverflow(toCSSPrimitiveValue(pair->second()));
346 } 346 }
347 } else { 347 } else {
348 alignmentData.setPosition(*toCSSPrimitiveValue(value)); 348 alignmentData.setPosition(*toCSSPrimitiveValue(value));
349 } 349 }
350 return alignmentData; 350 return alignmentData;
351 } 351 }
352 352
353 StyleContentAlignmentData StyleBuilderConverter::convertContentAlignmentData(Sty leResolverState&, CSSValue* value) 353 StyleContentAlignmentData StyleBuilderConverter::convertContentAlignmentData(Sty leResolverState&, CSSValue* value)
354 { 354 {
355 StyleContentAlignmentData alignmentData = ComputedStyle::initialContentAlign ment(); 355 StyleContentAlignmentData alignmentData = ComputedStyle::initialContentAlign ment();
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 return toCSSPrimitiveValue(value)->convertToLength(state.cssToLengthConversi onData()); 529 return toCSSPrimitiveValue(value)->convertToLength(state.cssToLengthConversi onData());
530 } 530 }
531 531
532 UnzoomedLength StyleBuilderConverter::convertUnzoomedLength(const StyleResolverS tate& state, CSSValue* value) 532 UnzoomedLength StyleBuilderConverter::convertUnzoomedLength(const StyleResolverS tate& state, CSSValue* value)
533 { 533 {
534 return UnzoomedLength(toCSSPrimitiveValue(value)->convertToLength(state.cssT oLengthConversionData().copyWithAdjustedZoom(1.0f))); 534 return UnzoomedLength(toCSSPrimitiveValue(value)->convertToLength(state.cssT oLengthConversionData().copyWithAdjustedZoom(1.0f)));
535 } 535 }
536 536
537 Length StyleBuilderConverter::convertLengthOrAuto(const StyleResolverState& stat e, CSSValue* value) 537 Length StyleBuilderConverter::convertLengthOrAuto(const StyleResolverState& stat e, CSSValue* value)
538 { 538 {
539 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); 539 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(*value);
540 if (primitiveValue->getValueID() == CSSValueAuto) 540 if (primitiveValue.getValueID() == CSSValueAuto)
541 return Length(Auto); 541 return Length(Auto);
542 return primitiveValue->convertToLength(state.cssToLengthConversionData()); 542 return primitiveValue.convertToLength(state.cssToLengthConversionData());
543 } 543 }
544 544
545 Length StyleBuilderConverter::convertLengthSizing(StyleResolverState& state, CSS Value* value) 545 Length StyleBuilderConverter::convertLengthSizing(StyleResolverState& state, CSS Value* value)
546 { 546 {
547 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); 547 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
548 switch (primitiveValue->getValueID()) { 548 switch (primitiveValue->getValueID()) {
549 case CSSValueInvalid: 549 case CSSValueInvalid:
550 return convertLength(state, value); 550 return convertLength(state, value);
551 case CSSValueIntrinsic: 551 case CSSValueIntrinsic:
552 return Length(Intrinsic); 552 return Length(Intrinsic);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 ASSERT(primitiveValue->isNumber() || primitiveValue->isPercentage()); 630 ASSERT(primitiveValue->isNumber() || primitiveValue->isPercentage());
631 if (primitiveValue->isNumber()) 631 if (primitiveValue->isNumber())
632 return primitiveValue->getFloatValue(); 632 return primitiveValue->getFloatValue();
633 return primitiveValue->getFloatValue() / 100.0f; 633 return primitiveValue->getFloatValue() / 100.0f;
634 } 634 }
635 635
636 template <CSSValueID cssValueFor0, CSSValueID cssValueFor100> 636 template <CSSValueID cssValueFor0, CSSValueID cssValueFor100>
637 static Length convertPositionLength(StyleResolverState& state, CSSValue* value) 637 static Length convertPositionLength(StyleResolverState& state, CSSValue* value)
638 { 638 {
639 if (value->isValuePair()) { 639 if (value->isValuePair()) {
640 const CSSValuePair* pair = toCSSValuePair(value); 640 CSSValuePair* pair = toCSSValuePair(value);
641 Length length = StyleBuilderConverter::convertLength(state, pair->second ()); 641 Length length = StyleBuilderConverter::convertLength(state, &pair->secon d());
642 if (toCSSPrimitiveValue(pair->first())->getValueID() == cssValueFor0) 642 if (toCSSPrimitiveValue(pair->first()).getValueID() == cssValueFor0)
643 return length; 643 return length;
644 ASSERT(toCSSPrimitiveValue(pair->first())->getValueID() == cssValueFor10 0); 644 ASSERT(toCSSPrimitiveValue(pair->first()).getValueID() == cssValueFor100 );
645 return length.subtractFromOneHundredPercent(); 645 return length.subtractFromOneHundredPercent();
646 } 646 }
647 647
648 return StyleBuilderConverter::convertLength(state, value); 648 return StyleBuilderConverter::convertLength(state, value);
649 } 649 }
650 650
651 LengthPoint StyleBuilderConverter::convertPosition(StyleResolverState& state, CS SValue* value) 651 LengthPoint StyleBuilderConverter::convertPosition(StyleResolverState& state, CS SValue* value)
652 { 652 {
653 const CSSValuePair* pair = toCSSValuePair(value); 653 CSSValuePair* pair = toCSSValuePair(value);
654 return LengthPoint( 654 return LengthPoint(
655 convertPositionLength<CSSValueLeft, CSSValueRight>(state, pair->first()) , 655 convertPositionLength<CSSValueLeft, CSSValueRight>(state, &pair->first() ),
656 convertPositionLength<CSSValueTop, CSSValueBottom>(state, pair->second() ) 656 convertPositionLength<CSSValueTop, CSSValueBottom>(state, &pair->second( ))
657 ); 657 );
658 } 658 }
659 659
660 static float convertPerspectiveLength(StyleResolverState& state, CSSPrimitiveVal ue* primitiveValue) 660 static float convertPerspectiveLength(StyleResolverState& state, CSSPrimitiveVal ue* primitiveValue)
661 { 661 {
662 return std::max(primitiveValue->computeLength<float>(state.cssToLengthConver sionData()), 0.0f); 662 return std::max(primitiveValue->computeLength<float>(state.cssToLengthConver sionData()), 0.0f);
663 } 663 }
664 664
665 float StyleBuilderConverter::convertPerspective(StyleResolverState& state, CSSVa lue* value) 665 float StyleBuilderConverter::convertPerspective(StyleResolverState& state, CSSVa lue* value)
666 { 666 {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 } 746 }
747 return quotes.release(); 747 return quotes.release();
748 } 748 }
749 // FIXME: We should assert we're a primitive value with valueID = CSSValueNo ne 749 // FIXME: We should assert we're a primitive value with valueID = CSSValueNo ne
750 return QuotesData::create(); 750 return QuotesData::create();
751 } 751 }
752 752
753 LengthSize StyleBuilderConverter::convertRadius(StyleResolverState& state, CSSVa lue* value) 753 LengthSize StyleBuilderConverter::convertRadius(StyleResolverState& state, CSSVa lue* value)
754 { 754 {
755 const CSSValuePair* pair = toCSSValuePair(value); 755 const CSSValuePair* pair = toCSSValuePair(value);
756 Length radiusWidth = toCSSPrimitiveValue(pair->first())->convertToLength(sta te.cssToLengthConversionData()); 756 Length radiusWidth = toCSSPrimitiveValue(pair->first()).convertToLength(stat e.cssToLengthConversionData());
757 Length radiusHeight = toCSSPrimitiveValue(pair->second())->convertToLength(s tate.cssToLengthConversionData()); 757 Length radiusHeight = toCSSPrimitiveValue(pair->second()).convertToLength(st ate.cssToLengthConversionData());
758 float width = radiusWidth.value(); 758 float width = radiusWidth.value();
759 float height = radiusHeight.value(); 759 float height = radiusHeight.value();
760 ASSERT(width >= 0 && height >= 0); 760 ASSERT(width >= 0 && height >= 0);
761 if (width <= 0 || height <= 0) 761 if (width <= 0 || height <= 0)
762 return LengthSize(Length(0, Fixed), Length(0, Fixed)); 762 return LengthSize(Length(0, Fixed), Length(0, Fixed));
763 return LengthSize(radiusWidth, radiusHeight); 763 return LengthSize(radiusWidth, radiusHeight);
764 } 764 }
765 765
766 PassRefPtr<ShadowList> StyleBuilderConverter::convertShadow(StyleResolverState& state, CSSValue* value) 766 PassRefPtr<ShadowList> StyleBuilderConverter::convertShadow(StyleResolverState& state, CSSValue* value)
767 { 767 {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 PassRefPtr<SVGDashArray> StyleBuilderConverter::convertStrokeDasharray(StyleReso lverState& state, CSSValue* value) 827 PassRefPtr<SVGDashArray> StyleBuilderConverter::convertStrokeDasharray(StyleReso lverState& state, CSSValue* value)
828 { 828 {
829 if (!value->isValueList()) 829 if (!value->isValueList())
830 return SVGComputedStyle::initialStrokeDashArray(); 830 return SVGComputedStyle::initialStrokeDashArray();
831 831
832 CSSValueList* dashes = toCSSValueList(value); 832 CSSValueList* dashes = toCSSValueList(value);
833 833
834 RefPtr<SVGDashArray> array = SVGDashArray::create(); 834 RefPtr<SVGDashArray> array = SVGDashArray::create();
835 size_t length = dashes->length(); 835 size_t length = dashes->length();
836 for (size_t i = 0; i < length; ++i) { 836 for (size_t i = 0; i < length; ++i) {
837 CSSPrimitiveValue* dash = toCSSPrimitiveValue(dashes->item(i)); 837 array->append(convertLength(state, toCSSPrimitiveValue(dashes->item(i))) );
838 array->append(convertLength(state, dash));
839 } 838 }
840 839
841 return array.release(); 840 return array.release();
842 } 841 }
843 842
844 StyleColor StyleBuilderConverter::convertStyleColor(StyleResolverState& state, C SSValue* value, bool forVisitedLink) 843 StyleColor StyleBuilderConverter::convertStyleColor(StyleResolverState& state, C SSValue* value, bool forVisitedLink)
845 { 844 {
846 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); 845 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
847 if (primitiveValue->getValueID() == CSSValueCurrentcolor) 846 if (primitiveValue->getValueID() == CSSValueCurrentcolor)
848 return StyleColor::currentColor(); 847 return StyleColor::currentColor();
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 return ScaleTransformOperation::create(sx, sy, sz, TransformOperation::Scale 3D); 955 return ScaleTransformOperation::create(sx, sy, sz, TransformOperation::Scale 3D);
957 } 956 }
958 957
959 RespectImageOrientationEnum StyleBuilderConverter::convertImageOrientation(Style ResolverState& state, CSSValue* value) 958 RespectImageOrientationEnum StyleBuilderConverter::convertImageOrientation(Style ResolverState& state, CSSValue* value)
960 { 959 {
961 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); 960 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
962 return primitiveValue->getValueID() == CSSValueFromImage ? RespectImageOrien tation : DoNotRespectImageOrientation; 961 return primitiveValue->getValueID() == CSSValueFromImage ? RespectImageOrien tation : DoNotRespectImageOrientation;
963 } 962 }
964 963
965 } // namespace blink 964 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/css/resolver/CSSToStyleMap.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698