Title: [143289] trunk/Source/WebCore
- Revision
- 143289
- Author
- [email protected]
- Date
- 2013-02-18 19:38:46 -0800 (Mon, 18 Feb 2013)
Log Message
Encapsulate FloatingObject's constructor inside create
https://bugs.webkit.org/show_bug.cgi?id=110169
Reviewed by Darin Adler.
Added FloatingObject::create and made FloatingObject's constructor private.
Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::addOverhangingFloats):
(WebCore::RenderBlock::addIntrudingFloats):
(WebCore::RenderBlock::ensureFloatingObjects):
(WebCore::RenderBlock::FloatingObjects::create):
(WebCore::RenderBlock::FloatingObjects::FloatingObjects):
* rendering/RenderBlock.h:
(FloatingObjects):
(RenderBlock):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (143288 => 143289)
--- trunk/Source/WebCore/ChangeLog 2013-02-19 03:20:50 UTC (rev 143288)
+++ trunk/Source/WebCore/ChangeLog 2013-02-19 03:38:46 UTC (rev 143289)
@@ -1,3 +1,24 @@
+2013-02-18 Ryosuke Niwa <[email protected]>
+
+ Encapsulate FloatingObject's constructor inside create
+ https://bugs.webkit.org/show_bug.cgi?id=110169
+
+ Reviewed by Darin Adler.
+
+ Added FloatingObject::create and made FloatingObject's constructor private.
+ Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::insertFloatingObject):
+ (WebCore::RenderBlock::addOverhangingFloats):
+ (WebCore::RenderBlock::addIntrudingFloats):
+ (WebCore::RenderBlock::ensureFloatingObjects):
+ (WebCore::RenderBlock::FloatingObjects::create):
+ (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
+ * rendering/RenderBlock.h:
+ (FloatingObjects):
+ (RenderBlock):
+
2013-02-18 Anders Carlsson <[email protected]>
Add a DefaultHash for RefPtr<SecurityOrigin>
Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (143288 => 143289)
--- trunk/Source/WebCore/rendering/RenderBlock.cpp 2013-02-19 03:20:50 UTC (rev 143288)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp 2013-02-19 03:38:46 UTC (rev 143289)
@@ -3888,7 +3888,7 @@
// Create the list of special objects if we don't aleady have one
if (!m_floatingObjects)
- m_floatingObjects = adoptPtr(new FloatingObjects(this, isHorizontalWritingMode()));
+ createFloatingObjects();
else {
// Don't insert the object again if it's already in the list
const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
@@ -4655,8 +4655,7 @@
// We create the floating object list lazily.
if (!m_floatingObjects)
- m_floatingObjects = adoptPtr(new FloatingObjects(this, isHorizontalWritingMode()));
-
+ createFloatingObjects();
m_floatingObjects->add(floatingObj);
}
} else {
@@ -4728,7 +4727,7 @@
// We create the floating object list lazily.
if (!m_floatingObjects)
- m_floatingObjects = adoptPtr(new FloatingObjects(this, isHorizontalWritingMode()));
+ createFloatingObjects();
m_floatingObjects->add(floatingObj);
}
}
@@ -7760,6 +7759,27 @@
return "RenderBlock";
}
+inline RenderBlock::FloatingObjects::FloatingObjects(const RenderBlock* renderer, bool horizontalWritingMode)
+ : m_placedFloatsTree(UninitializedTree)
+ , m_leftObjectsCount(0)
+ , m_rightObjectsCount(0)
+ , m_horizontalWritingMode(horizontalWritingMode)
+ , m_renderer(renderer)
+{
+}
+
+inline PassOwnPtr<RenderBlock::FloatingObjects> RenderBlock::FloatingObjects::create(const RenderBlock* renderer, bool horizontalWritingMode)
+{
+ return adoptPtr(new FloatingObjects(renderer, horizontalWritingMode));
+}
+
+void RenderBlock::createFloatingObjects()
+{
+ if (m_floatingObjects)
+ return;
+ m_floatingObjects = FloatingObjects::create(this, isHorizontalWritingMode());
+}
+
inline void RenderBlock::FloatingObjects::clear()
{
m_set.clear();
Modified: trunk/Source/WebCore/rendering/RenderBlock.h (143288 => 143289)
--- trunk/Source/WebCore/rendering/RenderBlock.h 2013-02-19 03:20:50 UTC (rev 143288)
+++ trunk/Source/WebCore/rendering/RenderBlock.h 2013-02-19 03:38:46 UTC (rev 143289)
@@ -1139,16 +1139,9 @@
};
class FloatingObjects {
+ WTF_MAKE_NONCOPYABLE(FloatingObjects); WTF_MAKE_FAST_ALLOCATED;
public:
- FloatingObjects(const RenderBlock* renderer, bool horizontalWritingMode)
- : m_placedFloatsTree(UninitializedTree)
- , m_leftObjectsCount(0)
- , m_rightObjectsCount(0)
- , m_horizontalWritingMode(horizontalWritingMode)
- , m_renderer(renderer)
- {
- }
-
+ static PassOwnPtr<FloatingObjects> create(const RenderBlock*, bool horizontalWritingMode);
void clear();
void add(FloatingObject*);
void remove(FloatingObject*);
@@ -1165,6 +1158,7 @@
return m_placedFloatsTree;
}
private:
+ FloatingObjects(const RenderBlock*, bool horizontalWritingMode);
void computePlacedFloatsTree();
inline void computePlacedFloatsTreeIfNeeded()
{
@@ -1182,8 +1176,12 @@
bool m_horizontalWritingMode;
const RenderBlock* m_renderer;
};
+
OwnPtr<FloatingObjects> m_floatingObjects;
+ void createFloatingObjects();
+
+
// Allocated only when some of these fields have non-default values
struct RenderBlockRareData {
WTF_MAKE_NONCOPYABLE(RenderBlockRareData); WTF_MAKE_FAST_ALLOCATED;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes