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

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

Issue 1265853003: CSSValue Immediates: Immediates from all CSSPrimitiveValue constructors (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@tagged_ptrs_base
Patch Set: Created 5 years, 4 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
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, 2008 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved.
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 bool isCalculatedPercentageWithNumber() const { return primitiveType() == CS S_CALC_PERCENTAGE_WITH_NUMBER; } 216 bool isCalculatedPercentageWithNumber() const { return primitiveType() == CS S_CALC_PERCENTAGE_WITH_NUMBER; }
217 bool isCalculatedPercentageWithLength() const { return primitiveType() == CS S_CALC_PERCENTAGE_WITH_LENGTH; } 217 bool isCalculatedPercentageWithLength() const { return primitiveType() == CS S_CALC_PERCENTAGE_WITH_LENGTH; }
218 static bool isDotsPerInch(UnitType type) { return type == CSS_DPI; } 218 static bool isDotsPerInch(UnitType type) { return type == CSS_DPI; }
219 static bool isDotsPerPixel(UnitType type) { return type == CSS_DPPX; } 219 static bool isDotsPerPixel(UnitType type) { return type == CSS_DPPX; }
220 static bool isDotsPerCentimeter(UnitType type) { return type == CSS_DPCM; } 220 static bool isDotsPerCentimeter(UnitType type) { return type == CSS_DPCM; }
221 static bool isResolution(UnitType type) { return type >= CSS_DPPX && type <= CSS_DPCM; } 221 static bool isResolution(UnitType type) { return type >= CSS_DPPX && type <= CSS_DPCM; }
222 bool isFlex() const { return primitiveType() == CSS_FR; } 222 bool isFlex() const { return primitiveType() == CSS_FR; }
223 bool isValueID() const { return type() == CSS_VALUE_ID; } 223 bool isValueID() const { return type() == CSS_VALUE_ID; }
224 bool colorIsDerivedFromElement() const; 224 bool colorIsDerivedFromElement() const;
225 225
226 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createIdentifier(CSSValueID valueID) 226 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(CSSValueID valueID)
227 { 227 {
228 CSSTaggedPtrValue taggedPtr; 228 CSSTaggedPtrValue taggedPtr;
229 taggedPtr.flag = 1; 229 taggedPtr.flag = 1;
230 taggedPtr.type = static_cast<uintptr_t>(CSSPrimitiveValue::CSS_VALUE_ID) ; 230 taggedPtr.type = static_cast<uintptr_t>(CSSPrimitiveValue::CSS_VALUE_ID) ;
231 taggedPtr.value = static_cast<uintptr_t>(valueID); 231 taggedPtr.value = static_cast<uintptr_t>(valueID);
232 return adoptRefWillBeNoop(toPtr(taggedPtr)); 232 return adoptRefWillBeNoop(toPtr(taggedPtr));
233 } 233 }
234 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createIdentifier(CSSPropert yID propertyID) 234 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(CSSPropertyID proper tyID)
235 { 235 {
236 CSSTaggedPtrValue taggedPtr; 236 CSSTaggedPtrValue taggedPtr;
237 taggedPtr.flag = 1; 237 taggedPtr.flag = 1;
238 taggedPtr.type = static_cast<uintptr_t>(CSSPrimitiveValue::CSS_PROPERTY_ ID); 238 taggedPtr.type = static_cast<uintptr_t>(CSSPrimitiveValue::CSS_PROPERTY_ ID);
239 taggedPtr.value = static_cast<uintptr_t>(propertyID); 239 taggedPtr.value = static_cast<uintptr_t>(propertyID);
240 return adoptRefWillBeNoop(toPtr(taggedPtr)); 240 return adoptRefWillBeNoop(toPtr(taggedPtr));
241 } 241 }
242 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createColor(RGBA32 rgbValue ) 242 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createColor(RGBA32 rgbValue )
243 { 243 {
244 bool canFitColor; 244 bool canFitColor;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 return adoptRefWillBeNoop(new CSSPrimitiveValue(value, type)); 283 return adoptRefWillBeNoop(new CSSPrimitiveValue(value, type));
284 } 284 }
285 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(const Length& value, float zoom) 285 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(const Length& value, float zoom)
286 { 286 {
287 return adoptRefWillBeNoop(new CSSPrimitiveValue(value, zoom)); 287 return adoptRefWillBeNoop(new CSSPrimitiveValue(value, zoom));
288 } 288 }
289 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(const LengthSize& va lue, const ComputedStyle& style) 289 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(const LengthSize& va lue, const ComputedStyle& style)
290 { 290 {
291 return adoptRefWillBeNoop(new CSSPrimitiveValue(value, style)); 291 return adoptRefWillBeNoop(new CSSPrimitiveValue(value, style));
292 } 292 }
293 template<typename T> static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create (T value) 293 template<typename T> static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create (T value); // Defined in CSSPrimitiveValueMappings.h
294
295 template<typename T> static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create (T* val)
294 { 296 {
295 return adoptRefWillBeNoop(new CSSPrimitiveValue(value)); 297 CSSPrimitiveValue* primitiveValue = new CSSPrimitiveValue(CSS_UNKNOWN);
298 primitiveValue->init(PassRefPtrWillBeRawPtr<T>(val));
299 return adoptRefWillBeNoop(primitiveValue);
300 }
301
302 template<typename T> static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create (PassRefPtrWillBeRawPtr<T> val)
303 {
304 CSSPrimitiveValue* primitiveValue = new CSSPrimitiveValue(CSS_UNKNOWN);
305 primitiveValue->init(val);
306 return adoptRefWillBeNoop(primitiveValue);
296 } 307 }
297 308
298 // This value is used to handle quirky margins in reflow roots (body, td, an d th) like WinIE. 309 // This value is used to handle quirky margins in reflow roots (body, td, an d th) like WinIE.
299 // The basic idea is that a stylesheet can use the value __qem (for quirky e m) instead of em. 310 // The basic idea is that a stylesheet can use the value __qem (for quirky e m) instead of em.
300 // When the quirky value is used, if you're in quirks mode, the margin will collapse away 311 // When the quirky value is used, if you're in quirks mode, the margin will collapse away
301 // inside a table cell. 312 // inside a table cell.
302 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createAllowingMarginQuirk(d ouble value, UnitType type) 313 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createAllowingMarginQuirk(d ouble value, UnitType type)
303 { 314 {
304 CSSPrimitiveValue* quirkValue = new CSSPrimitiveValue(value, type); 315 CSSPrimitiveValue* quirkValue = new CSSPrimitiveValue(value, type);
305 quirkValue->m_isQuirkValue = true; 316 quirkValue->m_isQuirkValue = true;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 389
379 private: 390 private:
380 CSSPrimitiveValue(CSSValueID); 391 CSSPrimitiveValue(CSSValueID);
381 CSSPrimitiveValue(CSSPropertyID); 392 CSSPrimitiveValue(CSSPropertyID);
382 CSSPrimitiveValue(RGBA32 color); 393 CSSPrimitiveValue(RGBA32 color);
383 CSSPrimitiveValue(const Length&, float zoom); 394 CSSPrimitiveValue(const Length&, float zoom);
384 CSSPrimitiveValue(const LengthSize&, const ComputedStyle&); 395 CSSPrimitiveValue(const LengthSize&, const ComputedStyle&);
385 CSSPrimitiveValue(const String&, UnitType); 396 CSSPrimitiveValue(const String&, UnitType);
386 CSSPrimitiveValue(double, UnitType); 397 CSSPrimitiveValue(double, UnitType);
387 398
388 template<typename T> CSSPrimitiveValue(T); // Defined in CSSPrimitiveValueMa ppings.h
389 template<typename T> CSSPrimitiveValue(T* val) 399 template<typename T> CSSPrimitiveValue(T* val)
390 : CSSValue(PrimitiveClass) 400 : CSSValue(PrimitiveClass)
391 { 401 {
392 init(PassRefPtrWillBeRawPtr<T>(val)); 402 init(PassRefPtrWillBeRawPtr<T>(val));
393 } 403 }
394 404
395 template<typename T> CSSPrimitiveValue(PassRefPtrWillBeRawPtr<T> val) 405 template<typename T> CSSPrimitiveValue(PassRefPtrWillBeRawPtr<T> val)
396 : CSSValue(PrimitiveClass) 406 : CSSValue(PrimitiveClass)
397 { 407 {
398 init(val); 408 init(val);
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 // Immediates (non-pointers) end in a 1. 521 // Immediates (non-pointers) end in a 1.
512 if (!(reinterpret_cast<uintptr_t>(p) & 1)) 522 if (!(reinterpret_cast<uintptr_t>(p) & 1))
513 adopted(p); 523 adopted(p);
514 return PassRefPtr<blink::CSSPrimitiveValue>(p, PassRefPtr<blink::CSSPrimitiv eValue>::AdoptRef); 524 return PassRefPtr<blink::CSSPrimitiveValue>(p, PassRefPtr<blink::CSSPrimitiv eValue>::AdoptRef);
515 } 525 }
516 #endif 526 #endif
517 527
518 } // namespace WTF 528 } // namespace WTF
519 529
520 #endif // CSSPrimitiveValue_h 530 #endif // CSSPrimitiveValue_h
OLDNEW
« no previous file with comments | « Source/core/animation/css/CSSAnimatableValueFactory.cpp ('k') | Source/core/css/CSSPrimitiveValueMappings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698