Index: Source/core/editing/FrameSelection.cpp |
diff --git a/Source/core/editing/FrameSelection.cpp b/Source/core/editing/FrameSelection.cpp |
index 974ad4e94da696efb7f4a1e43a639b90dbf2aed9..076f539293ad80f47afba2d10be94c356d02a930 100644 |
--- a/Source/core/editing/FrameSelection.cpp |
+++ b/Source/core/editing/FrameSelection.cpp |
@@ -241,10 +241,10 @@ void FrameSelection::setSelection(const VisibleSelection& newSelection, SetSelec |
// <http://bugs.webkit.org/show_bug.cgi?id=23464>: Infinite recursion at FrameSelection::setSelection |
// if document->frame() == m_frame we can get into an infinite loop |
if (s.base().anchorNode()) { |
- Document* document = s.base().anchorNode()->document(); |
- if (document->frame() && document->frame() != m_frame && document != m_frame->document()) { |
- RefPtr<Frame> guard = document->frame(); |
- document->frame()->selection()->setSelection(s, options, align, granularity); |
+ Document& document = s.base().anchorNode()->document(); |
+ if (document.frame() && document.frame() != m_frame && &document != m_frame->document()) { |
+ RefPtr<Frame> guard = document.frame(); |
+ document.frame()->selection()->setSelection(s, options, align, granularity); |
// It's possible that during the above set selection, this FrameSelection has been modified by |
// selectFrameElementInParentIfFullySelected, but that the selection is no longer valid since |
// the frame is about to be destroyed. If this is the case, clear our selection. |
@@ -320,7 +320,7 @@ static bool removingNodeRemovesPosition(Node* node, const Position& position) |
static void clearRenderViewSelection(const Position& position) |
{ |
- RefPtr<Document> document = position.anchorNode()->document(); |
+ RefPtr<Document> document = &position.anchorNode()->document(); |
document->updateStyleIfNeeded(); |
if (RenderView* view = document->renderView()) |
view->clearSelection(); |
@@ -1115,7 +1115,7 @@ LayoutUnit FrameSelection::lineDirectionPointForBlockDirectionNavigation(EPositi |
break; |
} |
- Frame* frame = pos.anchorNode()->document()->frame(); |
+ Frame* frame = pos.anchorNode()->document().frame(); |
if (!frame) |
return x; |
@@ -1461,7 +1461,7 @@ bool FrameSelection::setSelectedRange(Range* range, EAffinity affinity, bool clo |
{ |
if (!range || !range->startContainer() || !range->endContainer()) |
return false; |
- ASSERT(range->startContainer()->document() == range->endContainer()->document()); |
+ ASSERT(&range->startContainer()->document() == &range->endContainer()->document()); |
m_frame->document()->updateLayoutIgnorePendingStylesheets(); |
@@ -1664,7 +1664,7 @@ bool FrameSelection::shouldBlinkCaret() const |
if (!root) |
return false; |
- Element* focusedElement = root->document()->focusedElement(); |
+ Element* focusedElement = root->document().focusedElement(); |
if (!focusedElement) |
return false; |