Index: Source/core/html/HTMLTextFormControlElement.cpp |
diff --git a/Source/core/html/HTMLTextFormControlElement.cpp b/Source/core/html/HTMLTextFormControlElement.cpp |
index 658ef9df2375ac4015e2f817e6984bd35abc38bf..f1015db34f8a31de6b02f7cf28fdaa4aaf29e894 100644 |
--- a/Source/core/html/HTMLTextFormControlElement.cpp |
+++ b/Source/core/html/HTMLTextFormControlElement.cpp |
@@ -393,11 +393,13 @@ VisiblePosition HTMLTextFormControlElement::visiblePositionForIndex(int index) c |
{ |
if (index <= 0) |
return VisiblePosition(firstPositionInNode(innerEditorElement()), DOWNSTREAM); |
- RefPtrWillBeRawPtr<Range> range = Range::create(document()); |
- range->selectNodeContents(innerEditorElement(), ASSERT_NO_EXCEPTION); |
- CharacterIterator it(range.get()); |
+ Position start, end; |
+ bool selected = Range::selectNodeContents(innerEditorElement(), start, end); |
+ if (!selected) |
+ return VisiblePosition(); |
+ CharacterIterator it(start, end); |
it.advance(index - 1); |
- return VisiblePosition(it.range()->endPosition(), UPSTREAM); |
+ return VisiblePosition(it.endPosition(), UPSTREAM); |
} |
int HTMLTextFormControlElement::indexForVisiblePosition(const VisiblePosition& pos) const |