| Index: Source/WebCore/editing/ReplaceSelectionCommand.cpp
 | 
| ===================================================================
 | 
| --- Source/WebCore/editing/ReplaceSelectionCommand.cpp	(revision 120113)
 | 
| +++ Source/WebCore/editing/ReplaceSelectionCommand.cpp	(working copy)
 | 
| @@ -81,7 +81,7 @@
 | 
|      bool hasInterchangeNewlineAtEnd() const { return m_hasInterchangeNewlineAtEnd; }
 | 
|      
 | 
|      void removeNode(PassRefPtr<Node>);
 | 
| -    void removeNodePreservingChildren(Node*);
 | 
| +    void removeNodePreservingChildren(PassRefPtr<Node>);
 | 
|  
 | 
|  private:
 | 
|      PassRefPtr<StyledElement> insertFragmentForTestRendering(Node* rootEditableNode);
 | 
| @@ -211,14 +211,14 @@
 | 
|      return m_fragment ? m_fragment->lastChild() : 0; 
 | 
|  }
 | 
|  
 | 
| -void ReplacementFragment::removeNodePreservingChildren(Node *node)
 | 
| +void ReplacementFragment::removeNodePreservingChildren(PassRefPtr<Node> node)
 | 
|  {
 | 
|      if (!node)
 | 
|          return;
 | 
|  
 | 
|      while (RefPtr<Node> n = node->firstChild()) {
 | 
|          removeNode(n);
 | 
| -        insertNodeBefore(n.release(), node);
 | 
| +        insertNodeBefore(n.release(), node.get());
 | 
|      }
 | 
|      removeNode(node);
 | 
|  }
 | 
| @@ -329,18 +329,12 @@
 | 
|      
 | 
|      node = container->firstChild();
 | 
|      while (node) {
 | 
| -        Node *next = node->traverseNextNode();
 | 
| +        RefPtr<Node> next = node->traverseNextNode();
 | 
|          if (isInterchangeConvertedSpaceSpan(node)) {
 | 
| -            RefPtr<Node> n = 0;
 | 
| -            while ((n = node->firstChild())) {
 | 
| -                removeNode(n);
 | 
| -                insertNodeBefore(n, node);
 | 
| -            }
 | 
| -            removeNode(node);
 | 
| -            if (n)
 | 
| -                next = n->traverseNextNode();
 | 
| +            next = node->traverseNextSibling();
 | 
| +            removeNodePreservingChildren(node);
 | 
|          }
 | 
| -        node = next;
 | 
| +        node = next.get();
 | 
|      }
 | 
|  }
 | 
|  
 | 
| 
 |