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

Side by Side Diff: Source/core/layout/LayoutObject.cpp

Issue 1317143005: [WIP] do something :-) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
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
« no previous file with comments | « Source/core/layout/LayoutInline.cpp ('k') | Source/core/layout/LayoutTableCell.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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 #include "core/style/ShadowList.h" 81 #include "core/style/ShadowList.h"
82 #include "platform/JSONValues.h" 82 #include "platform/JSONValues.h"
83 #include "platform/RuntimeEnabledFeatures.h" 83 #include "platform/RuntimeEnabledFeatures.h"
84 #include "platform/TraceEvent.h" 84 #include "platform/TraceEvent.h"
85 #include "platform/TracedValue.h" 85 #include "platform/TracedValue.h"
86 #include "platform/geometry/TransformState.h" 86 #include "platform/geometry/TransformState.h"
87 #include "platform/graphics/GraphicsContext.h" 87 #include "platform/graphics/GraphicsContext.h"
88 #include "platform/graphics/paint/DisplayItemList.h" 88 #include "platform/graphics/paint/DisplayItemList.h"
89 #include "wtf/Partitions.h" 89 #include "wtf/Partitions.h"
90 #include "wtf/RefCountedLeakCounter.h" 90 #include "wtf/RefCountedLeakCounter.h"
91 #include "wtf/SizeAssertions.h"
91 #include "wtf/text/StringBuilder.h" 92 #include "wtf/text/StringBuilder.h"
92 #include "wtf/text/WTFString.h" 93 #include "wtf/text/WTFString.h"
93 #include <algorithm> 94 #include <algorithm>
94 #ifndef NDEBUG 95 #ifndef NDEBUG
95 #include <stdio.h> 96 #include <stdio.h>
96 #endif 97 #endif
97 98
98 namespace blink { 99 namespace blink {
99 100
100 namespace { 101 namespace {
101 102
102 static bool gModifyLayoutTreeStructureAnyState = false; 103 static bool gModifyLayoutTreeStructureAnyState = false;
103 104
104 static bool gDisablePaintInvalidationStateAsserts = false; 105 static bool gDisablePaintInvalidationStateAsserts = false;
105 106
106 } // namespace 107 } // namespace
107 108
108 using namespace HTMLNames; 109 using namespace HTMLNames;
109 110
111 ASSERT_SIZE(LayoutObject, 56, 80);
112
110 const LayoutUnit& caretWidth() 113 const LayoutUnit& caretWidth()
111 { 114 {
112 static LayoutUnit gCaretWidth(1); 115 static LayoutUnit gCaretWidth(1);
113 return gCaretWidth; 116 return gCaretWidth;
114 } 117 }
115 118
116 #if ENABLE(ASSERT) 119 #if ENABLE(ASSERT)
117
118 LayoutObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope(Layou tObject& layoutObject) 120 LayoutObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope(Layou tObject& layoutObject)
119 : m_layoutObject(layoutObject) 121 : m_layoutObject(layoutObject)
120 , m_preexistingForbidden(m_layoutObject.isSetNeedsLayoutForbidden()) 122 , m_preexistingForbidden(m_layoutObject.isSetNeedsLayoutForbidden())
121 { 123 {
122 m_layoutObject.setNeedsLayoutIsForbidden(true); 124 m_layoutObject.setNeedsLayoutIsForbidden(true);
123 } 125 }
124 126
125 LayoutObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope() 127 LayoutObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope()
126 { 128 {
127 m_layoutObject.setNeedsLayoutIsForbidden(m_preexistingForbidden); 129 m_layoutObject.setNeedsLayoutIsForbidden(m_preexistingForbidden);
128 } 130 }
129 #endif 131 #endif
130 132
131 struct SameSizeAsLayoutObject {
132 virtual ~SameSizeAsLayoutObject() { } // Allocate vtable pointer.
133 void* pointers[5];
134 #if ENABLE(ASSERT)
135 unsigned m_debugBitfields : 2;
136 #endif
137 unsigned m_bitfields;
138 unsigned m_bitfields2;
139 LayoutRect rect; // Stores the previous paint invalidation rect.
140 LayoutPoint position; // Stores the previous position from the paint invalid ation container.
141 };
142
143 static_assert(sizeof(LayoutObject) == sizeof(SameSizeAsLayoutObject), "LayoutObj ect should stay small");
144
145 bool LayoutObject::s_affectsParentBlock = false; 133 bool LayoutObject::s_affectsParentBlock = false;
146 134
147 typedef HashMap<const LayoutObject*, LayoutRect> SelectionPaintInvalidationMap; 135 typedef HashMap<const LayoutObject*, LayoutRect> SelectionPaintInvalidationMap;
148 static SelectionPaintInvalidationMap* selectionPaintInvalidationMap = nullptr; 136 static SelectionPaintInvalidationMap* selectionPaintInvalidationMap = nullptr;
149 137
150 void* LayoutObject::operator new(size_t sz) 138 void* LayoutObject::operator new(size_t sz)
151 { 139 {
152 ASSERT(isMainThread()); 140 ASSERT(isMainThread());
153 return partitionAlloc(WTF::Partitions::layoutPartition(), sz); 141 return partitionAlloc(WTF::Partitions::layoutPartition(), sz);
154 } 142 }
(...skipping 3249 matching lines...) Expand 10 before | Expand all | Expand 10 after
3404 const blink::LayoutObject* root = object1; 3392 const blink::LayoutObject* root = object1;
3405 while (root->parent()) 3393 while (root->parent())
3406 root = root->parent(); 3394 root = root->parent();
3407 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3395 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3408 } else { 3396 } else {
3409 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3397 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3410 } 3398 }
3411 } 3399 }
3412 3400
3413 #endif 3401 #endif
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutInline.cpp ('k') | Source/core/layout/LayoutTableCell.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698