Index: Source/core/frame/LocalFrame.cpp |
diff --git a/Source/core/frame/LocalFrame.cpp b/Source/core/frame/LocalFrame.cpp |
index 864bbed24e9431c22b7a1889a56650c21e03615c..87b0b5e5638065a9bcc29fd04ed044ab02271ae4 100644 |
--- a/Source/core/frame/LocalFrame.cpp |
+++ b/Source/core/frame/LocalFrame.cpp |
@@ -554,27 +554,24 @@ struct ScopedFramePaintingState { |
Color backgroundColor; |
}; |
-PassOwnPtr<DragImage> LocalFrame::nodeImage(Node* node) |
+PassOwnPtr<DragImage> LocalFrame::nodeImage(Node& node) |
{ |
- if (!node->renderer()) |
+ if (!node.renderer()) |
return nullptr; |
- const ScopedFramePaintingState state(this, node); |
+ const ScopedFramePaintingState state(this, &node); |
+ |
+ m_view->updateLayoutAndStyleForPainting(); |
m_view->setPaintBehavior(state.paintBehavior | PaintBehaviorFlattenCompositingLayers); |
// When generating the drag image for an element, ignore the document background. |
m_view->setBaseBackgroundColor(Color::transparent); |
- // Updating layout can tear everything down, so ref the LocalFrame and Node to keep them alive. |
- RefPtr<LocalFrame> frameProtector(this); |
- RefPtr<Node> nodeProtector(node); |
- m_view->updateLayoutAndStyleForPainting(); |
- |
- m_view->setNodeToDraw(node); // Enable special sub-tree drawing mode. |
+ m_view->setNodeToDraw(&node); // Enable special sub-tree drawing mode. |
// Document::updateLayout may have blown away the original RenderObject. |
- RenderObject* renderer = node->renderer(); |
+ RenderObject* renderer = node.renderer(); |
if (!renderer) |
return nullptr; |