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

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

Issue 1310603004: WIP: Reduce sizeof(CSSValue) by 8 byte Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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/CSSPrimitiveValue.h ('k') | Source/core/css/CSSValue.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 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv ed. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv ed.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 case DeviceWidth: 324 case DeviceWidth:
325 case DeviceHeight: 325 case DeviceHeight:
326 case MaxSizeNone: 326 case MaxSizeNone:
327 ASSERT_NOT_REACHED(); 327 ASSERT_NOT_REACHED();
328 break; 328 break;
329 } 329 }
330 } 330 }
331 331
332 void CSSPrimitiveValue::init(UnitType type) 332 void CSSPrimitiveValue::init(UnitType type)
333 { 333 {
334 m_primitiveUnitType = static_cast<unsigned>(type); 334 setPrimitiveUnitType(static_cast<unsigned>(type));
335 } 335 }
336 336
337 void CSSPrimitiveValue::init(const LengthSize& lengthSize, const ComputedStyle& style) 337 void CSSPrimitiveValue::init(const LengthSize& lengthSize, const ComputedStyle& style)
338 { 338 {
339 init(UnitType::Pair); 339 init(UnitType::Pair);
340 m_hasCachedCSSText = false; 340 setHasCachedCSSText(false);
341 m_value.pair = Pair::create(create(lengthSize.width(), style.effectiveZoom() ), create(lengthSize.height(), style.effectiveZoom()), Pair::KeepIdenticalValues ).leakRef(); 341 m_value.pair = Pair::create(create(lengthSize.width(), style.effectiveZoom() ), create(lengthSize.height(), style.effectiveZoom()), Pair::KeepIdenticalValues ).leakRef();
342 } 342 }
343 343
344 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<Rect> r) 344 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<Rect> r)
345 { 345 {
346 init(UnitType::Rect); 346 init(UnitType::Rect);
347 m_hasCachedCSSText = false; 347 setHasCachedCSSText(false);
348 m_value.rect = r.leakRef(); 348 m_value.rect = r.leakRef();
349 } 349 }
350 350
351 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<Quad> quad) 351 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<Quad> quad)
352 { 352 {
353 init(UnitType::Quad); 353 init(UnitType::Quad);
354 m_hasCachedCSSText = false; 354 setHasCachedCSSText(false);
355 m_value.quad = quad.leakRef(); 355 m_value.quad = quad.leakRef();
356 } 356 }
357 357
358 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<Pair> p) 358 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<Pair> p)
359 { 359 {
360 init(UnitType::Pair); 360 init(UnitType::Pair);
361 m_hasCachedCSSText = false; 361 setHasCachedCSSText(false);
362 m_value.pair = p.leakRef(); 362 m_value.pair = p.leakRef();
363 } 363 }
364 364
365 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<CSSCalcValue> c) 365 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<CSSCalcValue> c)
366 { 366 {
367 init(UnitType::Calc); 367 init(UnitType::Calc);
368 m_hasCachedCSSText = false; 368 setHasCachedCSSText(false);
369 m_value.calc = c.leakRef(); 369 m_value.calc = c.leakRef();
370 } 370 }
371 371
372 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<CSSBasicShape> shape) 372 void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<CSSBasicShape> shape)
373 { 373 {
374 init(UnitType::Shape); 374 init(UnitType::Shape);
375 m_hasCachedCSSText = false; 375 setHasCachedCSSText(false);
376 m_value.shape = shape.leakRef(); 376 m_value.shape = shape.leakRef();
377 } 377 }
378 378
379 CSSPrimitiveValue::~CSSPrimitiveValue() 379 CSSPrimitiveValue::~CSSPrimitiveValue()
380 { 380 {
381 cleanup(); 381 cleanup();
382 } 382 }
383 383
384 void CSSPrimitiveValue::cleanup() 384 void CSSPrimitiveValue::cleanup()
385 { 385 {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 case UnitType::DotsPerPixel: 454 case UnitType::DotsPerPixel:
455 case UnitType::DotsPerInch: 455 case UnitType::DotsPerInch:
456 case UnitType::DotsPerCentimeter: 456 case UnitType::DotsPerCentimeter:
457 case UnitType::Fraction: 457 case UnitType::Fraction:
458 case UnitType::RGBColor: 458 case UnitType::RGBColor:
459 case UnitType::Unknown: 459 case UnitType::Unknown:
460 case UnitType::PropertyID: 460 case UnitType::PropertyID:
461 case UnitType::ValueID: 461 case UnitType::ValueID:
462 break; 462 break;
463 } 463 }
464 if (m_hasCachedCSSText) { 464 if (hasCachedCSSText()) {
465 cssTextCache().remove(this); 465 cssTextCache().remove(this);
466 m_hasCachedCSSText = false; 466 setHasCachedCSSText(false);
467 } 467 }
468 } 468 }
469 469
470 double CSSPrimitiveValue::computeSeconds() const 470 double CSSPrimitiveValue::computeSeconds() const
471 { 471 {
472 ASSERT(isTime() || (isCalculated() && cssCalcValue()->category() == CalcTime )); 472 ASSERT(isTime() || (isCalculated() && cssCalcValue()->category() == CalcTime ));
473 UnitType currentType = isCalculated() ? cssCalcValue()->expressionNode()->ty peWithCalcResolved() : type(); 473 UnitType currentType = isCalculated() ? cssCalcValue()->expressionNode()->ty peWithCalcResolved() : type();
474 if (currentType == UnitType::Seconds) 474 if (currentType == UnitType::Seconds)
475 return getDoubleValue(); 475 return getDoubleValue();
476 if (currentType == UnitType::Milliseconds) 476 if (currentType == UnitType::Milliseconds)
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 case UnitType::CalcPercentageWithLength: 914 case UnitType::CalcPercentageWithLength:
915 case UnitType::QuirkyEms: 915 case UnitType::QuirkyEms:
916 break; 916 break;
917 }; 917 };
918 ASSERT_NOT_REACHED(); 918 ASSERT_NOT_REACHED();
919 return ""; 919 return "";
920 } 920 }
921 921
922 String CSSPrimitiveValue::customCSSText() const 922 String CSSPrimitiveValue::customCSSText() const
923 { 923 {
924 if (m_hasCachedCSSText) { 924 if (hasCachedCSSText()) {
925 ASSERT(cssTextCache().contains(this)); 925 ASSERT(cssTextCache().contains(this));
926 return cssTextCache().get(this); 926 return cssTextCache().get(this);
927 } 927 }
928 928
929 String text; 929 String text;
930 switch (type()) { 930 switch (type()) {
931 case UnitType::Unknown: 931 case UnitType::Unknown:
932 // FIXME 932 // FIXME
933 break; 933 break;
934 case UnitType::Integer: 934 case UnitType::Integer:
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 break; 1011 break;
1012 case UnitType::CalcPercentageWithNumber: 1012 case UnitType::CalcPercentageWithNumber:
1013 case UnitType::CalcPercentageWithLength: 1013 case UnitType::CalcPercentageWithLength:
1014 case UnitType::QuirkyEms: 1014 case UnitType::QuirkyEms:
1015 ASSERT_NOT_REACHED(); 1015 ASSERT_NOT_REACHED();
1016 break; 1016 break;
1017 } 1017 }
1018 1018
1019 ASSERT(!cssTextCache().contains(this)); 1019 ASSERT(!cssTextCache().contains(this));
1020 cssTextCache().set(this, text); 1020 cssTextCache().set(this, text);
1021 m_hasCachedCSSText = true; 1021 const_cast<CSSPrimitiveValue*>(this)->setHasCachedCSSText(true);
1022 return text; 1022 return text;
1023 } 1023 }
1024 1024
1025 bool CSSPrimitiveValue::equals(const CSSPrimitiveValue& other) const 1025 bool CSSPrimitiveValue::equals(const CSSPrimitiveValue& other) const
1026 { 1026 {
1027 if (type() != other.type()) 1027 if (type() != other.type())
1028 return false; 1028 return false;
1029 1029
1030 switch (type()) { 1030 switch (type()) {
1031 case UnitType::Unknown: 1031 case UnitType::Unknown:
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1109 visitor->trace(m_value.shape); 1109 visitor->trace(m_value.shape);
1110 break; 1110 break;
1111 default: 1111 default:
1112 break; 1112 break;
1113 } 1113 }
1114 #endif 1114 #endif
1115 CSSValue::traceAfterDispatch(visitor); 1115 CSSValue::traceAfterDispatch(visitor);
1116 } 1116 }
1117 1117
1118 } // namespace blink 1118 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/css/CSSPrimitiveValue.h ('k') | Source/core/css/CSSValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698