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

Side by Side Diff: third_party/WebKit/Source/core/style/ComputedStyle.h

Issue 2755043002: Remove ComputedStyle::initializeBitDefaults(). (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/style/ComputedStyle.cpp » ('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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // list of associated pseudo styles 198 // list of associated pseudo styles
199 std::unique_ptr<PseudoStyleCache> m_cachedPseudoStyles; 199 std::unique_ptr<PseudoStyleCache> m_cachedPseudoStyles;
200 200
201 DataRef<SVGComputedStyle> m_svgStyle; 201 DataRef<SVGComputedStyle> m_svgStyle;
202 202
203 // !START SYNC!: Keep this in sync with the copy constructor in 203 // !START SYNC!: Keep this in sync with the copy constructor in
204 // ComputedStyle.cpp. 204 // ComputedStyle.cpp.
205 205
206 // inherit 206 // inherit
207 struct InheritedData { 207 struct InheritedData {
208 InheritedData()
209 : m_hasSimpleUnderline(false),
210 m_cursorStyle(static_cast<unsigned>(initialCursor())),
211 m_insideLink(static_cast<unsigned>(EInsideLink::kNotInsideLink)) {}
212
208 bool operator==(const InheritedData& other) const { 213 bool operator==(const InheritedData& other) const {
209 // Generated properties are compared in ComputedStyleBase 214 // Generated properties are compared in ComputedStyleBase
210 return (m_hasSimpleUnderline == other.m_hasSimpleUnderline) && 215 return (m_hasSimpleUnderline == other.m_hasSimpleUnderline) &&
211 (m_cursorStyle == other.m_cursorStyle) && 216 (m_cursorStyle == other.m_cursorStyle) &&
212 (m_insideLink == other.m_insideLink); 217 (m_insideLink == other.m_insideLink);
213 } 218 }
214 219
215 bool operator!=(const InheritedData& other) const { 220 bool operator!=(const InheritedData& other) const {
216 return !(*this == other); 221 return !(*this == other);
217 } 222 }
218 223
219 unsigned m_hasSimpleUnderline : 1; // True if 'underline solid' is the only 224 unsigned m_hasSimpleUnderline : 1; // True if 'underline solid' is the only
220 // text decoration on this element. 225 // text decoration on this element.
221 unsigned m_cursorStyle : 6; // ECursor 226 unsigned m_cursorStyle : 6; // ECursor
222 227
223 // non CSS2 inherited 228 // non CSS2 inherited
224 unsigned m_insideLink : 2; // EInsideLink 229 unsigned m_insideLink : 2; // EInsideLink
225 } m_inheritedData; 230 } m_inheritedData;
226 231
227 // don't inherit 232 // don't inherit
228 struct NonInheritedData { 233 struct NonInheritedData {
234 NonInheritedData()
235 : m_effectiveDisplay(static_cast<unsigned>(initialDisplay())),
236 m_originalDisplay(static_cast<unsigned>(initialDisplay())),
237 m_verticalAlign(static_cast<unsigned>(initialVerticalAlign())),
238 m_hasViewportUnits(false),
239 m_styleType(PseudoIdNone),
240 m_pseudoBits(0),
241 m_emptyState(false),
242 m_hasRemUnits(false) {}
243
229 // Compare computed styles, differences in inherited bits or other flags 244 // Compare computed styles, differences in inherited bits or other flags
230 // should not cause an inequality. 245 // should not cause an inequality.
231 bool operator==(const NonInheritedData& other) const { 246 bool operator==(const NonInheritedData& other) const {
232 // Generated properties are compared in ComputedStyleBase 247 // Generated properties are compared in ComputedStyleBase
233 return m_effectiveDisplay == other.m_effectiveDisplay && 248 return m_effectiveDisplay == other.m_effectiveDisplay &&
234 m_originalDisplay == other.m_originalDisplay && 249 m_originalDisplay == other.m_originalDisplay &&
235 m_verticalAlign == other.m_verticalAlign; 250 m_verticalAlign == other.m_verticalAlign;
236 // Differences in the following fields do not cause inequality: 251 // Differences in the following fields do not cause inequality:
237 // hasViewportUnits 252 // hasViewportUnits
238 // styleType 253 // styleType
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 // 64 bits 286 // 64 bits
272 287
273 mutable unsigned m_hasRemUnits : 1; 288 mutable unsigned m_hasRemUnits : 1;
274 289
275 // If you add more style bits here, you will also need to update 290 // If you add more style bits here, you will also need to update
276 // ComputedStyle::copyNonInheritedFromCached() 68 bits 291 // ComputedStyle::copyNonInheritedFromCached() 68 bits
277 } m_nonInheritedData; 292 } m_nonInheritedData;
278 293
279 // !END SYNC! 294 // !END SYNC!
280 295
281 // Only call inside the constructor. Generated properties in the base class
282 // are not initialized in this method.
283 void initializeBitDefaults() {
284 m_inheritedData.m_hasSimpleUnderline = false;
285 m_inheritedData.m_cursorStyle = static_cast<unsigned>(initialCursor());
286 m_inheritedData.m_insideLink =
287 static_cast<unsigned>(EInsideLink::kNotInsideLink);
288
289 m_nonInheritedData.m_effectiveDisplay =
290 m_nonInheritedData.m_originalDisplay =
291 static_cast<unsigned>(initialDisplay());
292 m_nonInheritedData.m_verticalAlign =
293 static_cast<unsigned>(initialVerticalAlign());
294 m_nonInheritedData.m_styleType = PseudoIdNone;
295 m_nonInheritedData.m_pseudoBits = 0;
296 m_nonInheritedData.m_emptyState = false;
297 m_nonInheritedData.m_hasViewportUnits = false;
298 m_nonInheritedData.m_hasRemUnits = false;
299 }
300
301 private: 296 private:
302 // TODO(sashab): Move these private members to the bottom of ComputedStyle. 297 // TODO(sashab): Move these private members to the bottom of ComputedStyle.
303 enum InitialStyleTag { InitialStyle }; 298 ALWAYS_INLINE ComputedStyle();
304 ALWAYS_INLINE explicit ComputedStyle(InitialStyleTag);
305 ALWAYS_INLINE ComputedStyle(const ComputedStyle&); 299 ALWAYS_INLINE ComputedStyle(const ComputedStyle&);
306 300
307 static PassRefPtr<ComputedStyle> createInitialStyle(); 301 static PassRefPtr<ComputedStyle> createInitialStyle();
308 // TODO(shend): Remove this. Initial style should not be mutable. 302 // TODO(shend): Remove this. Initial style should not be mutable.
309 static inline ComputedStyle& mutableInitialStyle() { 303 static inline ComputedStyle& mutableInitialStyle() {
310 LEAK_SANITIZER_DISABLED_SCOPE; 304 LEAK_SANITIZER_DISABLED_SCOPE;
311 DEFINE_STATIC_REF(ComputedStyle, s_initialStyle, 305 DEFINE_STATIC_REF(ComputedStyle, s_initialStyle,
312 (ComputedStyle::createInitialStyle())); 306 (ComputedStyle::createInitialStyle()));
313 return *s_initialStyle; 307 return *s_initialStyle;
314 } 308 }
(...skipping 3485 matching lines...) Expand 10 before | Expand all | Expand 10 after
3800 m_nonInheritedData.m_pseudoBits |= 1 << (pseudo - FirstPublicPseudoId); 3794 m_nonInheritedData.m_pseudoBits |= 1 << (pseudo - FirstPublicPseudoId);
3801 } 3795 }
3802 3796
3803 inline bool ComputedStyle::hasPseudoElementStyle() const { 3797 inline bool ComputedStyle::hasPseudoElementStyle() const {
3804 return m_nonInheritedData.m_pseudoBits & ElementPseudoIdMask; 3798 return m_nonInheritedData.m_pseudoBits & ElementPseudoIdMask;
3805 } 3799 }
3806 3800
3807 } // namespace blink 3801 } // namespace blink
3808 3802
3809 #endif // ComputedStyle_h 3803 #endif // ComputedStyle_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/style/ComputedStyle.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698