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

Side by Side Diff: Source/core/editing/SplitTextNodeCommand.cpp

Issue 23819007: Have Node::document() return a reference instead of a pointer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 18 matching lines...) Expand all
29 #include "bindings/v8/ExceptionState.h" 29 #include "bindings/v8/ExceptionState.h"
30 #include "bindings/v8/ExceptionStatePlaceholder.h" 30 #include "bindings/v8/ExceptionStatePlaceholder.h"
31 #include "core/dom/Document.h" 31 #include "core/dom/Document.h"
32 #include "core/dom/DocumentMarkerController.h" 32 #include "core/dom/DocumentMarkerController.h"
33 #include "core/dom/Text.h" 33 #include "core/dom/Text.h"
34 #include "wtf/Assertions.h" 34 #include "wtf/Assertions.h"
35 35
36 namespace WebCore { 36 namespace WebCore {
37 37
38 SplitTextNodeCommand::SplitTextNodeCommand(PassRefPtr<Text> text, int offset) 38 SplitTextNodeCommand::SplitTextNodeCommand(PassRefPtr<Text> text, int offset)
39 : SimpleEditCommand(text->document()) 39 : SimpleEditCommand(&text->document())
40 , m_text2(text) 40 , m_text2(text)
41 , m_offset(offset) 41 , m_offset(offset)
42 { 42 {
43 // NOTE: Various callers rely on the fact that the original node becomes 43 // NOTE: Various callers rely on the fact that the original node becomes
44 // the second node (i.e. the new node is inserted before the existing one). 44 // the second node (i.e. the new node is inserted before the existing one).
45 // That is not a fundamental dependency (i.e. it could be re-coded), but 45 // That is not a fundamental dependency (i.e. it could be re-coded), but
46 // rather is based on how this code happens to work. 46 // rather is based on how this code happens to work.
47 ASSERT(m_text2); 47 ASSERT(m_text2);
48 ASSERT(m_text2->length() > 0); 48 ASSERT(m_text2->length() > 0);
49 ASSERT(m_offset > 0); 49 ASSERT(m_offset > 0);
(...skipping 15 matching lines...) Expand all
65 document()->markers()->copyMarkers(m_text2.get(), 0, m_offset, m_text1.get() , 0); 65 document()->markers()->copyMarkers(m_text2.get(), 0, m_offset, m_text1.get() , 0);
66 66
67 insertText1AndTrimText2(); 67 insertText1AndTrimText2();
68 } 68 }
69 69
70 void SplitTextNodeCommand::doUnapply() 70 void SplitTextNodeCommand::doUnapply()
71 { 71 {
72 if (!m_text1 || !m_text1->rendererIsEditable()) 72 if (!m_text1 || !m_text1->rendererIsEditable())
73 return; 73 return;
74 74
75 ASSERT(m_text1->document() == document()); 75 ASSERT(&m_text1->document() == document());
76 76
77 String prefixText = m_text1->data(); 77 String prefixText = m_text1->data();
78 78
79 m_text2->insertData(0, prefixText, ASSERT_NO_EXCEPTION, DeprecatedAttachNow) ; 79 m_text2->insertData(0, prefixText, ASSERT_NO_EXCEPTION, DeprecatedAttachNow) ;
80 80
81 document()->markers()->copyMarkers(m_text1.get(), 0, prefixText.length(), m_ text2.get(), 0); 81 document()->markers()->copyMarkers(m_text1.get(), 0, prefixText.length(), m_ text2.get(), 0);
82 m_text1->remove(ASSERT_NO_EXCEPTION); 82 m_text1->remove(ASSERT_NO_EXCEPTION);
83 } 83 }
84 84
85 void SplitTextNodeCommand::doReapply() 85 void SplitTextNodeCommand::doReapply()
(...skipping 19 matching lines...) Expand all
105 105
106 #ifndef NDEBUG 106 #ifndef NDEBUG
107 void SplitTextNodeCommand::getNodesInCommand(HashSet<Node*>& nodes) 107 void SplitTextNodeCommand::getNodesInCommand(HashSet<Node*>& nodes)
108 { 108 {
109 addNodeAndDescendants(m_text1.get(), nodes); 109 addNodeAndDescendants(m_text1.get(), nodes);
110 addNodeAndDescendants(m_text2.get(), nodes); 110 addNodeAndDescendants(m_text2.get(), nodes);
111 } 111 }
112 #endif 112 #endif
113 113
114 } // namespace WebCore 114 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/editing/SplitElementCommand.cpp ('k') | Source/core/editing/SplitTextNodeContainingElementCommand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698