-
weinig authored
- fix http://bugs.webkit.org/show_bug.cgi?id=10735 Clicking in SVG results causes WebKit to consume 100% CPU for several minutes No test since there is no change in functionality. * CMakeLists.txt: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: Added PositionIterator.{cpp,h}. * WebCoreSources.bkl: * dom/Position.cpp: (WebCore::Position::Position): Added converting constructor from PositionIterator. (WebCore::Position::previous): Changed assert() to ASSERT(). (WebCore::Position::next): Ditto. (WebCore::isStreamer): Changed the argument to a PositionIterator. (WebCore::Position::upstream): Changed to use PositionIterator. (WebCore::Position::downstream): Ditto. (WebCore::Position::inRenderedText): Made public. (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight): Changed into a static member function. (WebCore::Position::nodeIsUserSelectNone): Ditto. * dom/Position.h: * dom/PositionIterator.cpp: Added. A Position iterator with constant-time increment, decrement, and several predicates on the Position it is at. Conversion to/from Position is O(n) in the offset. (WebCore::PositionIterator::increment): (WebCore::PositionIterator::decrement): (WebCore::PositionIterator::atStart): (WebCore::PositionIterator::atEnd): (WebCore::PositionIterator::atStartOfNode): (WebCore::PositionIterator::atEndOfNode): (WebCore::PositionIterator::isCandidate): * dom/PositionIterator.h: Added. (WebCore::PositionIterator::PositionIterator): (WebCore::PositionIterator::node): (WebCore::PositionIterator::offsetInLeafNode): * editing/htmlediting.cpp: (WebCore::nextCandidate): Changed to use PositionIterator. (WebCore::previousCandidate): Changed to use PositionIterator. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19734 268f45cc-cd09-0410-ab3c-d52691b4dbfc
346f9e37