[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
darin
darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:21:35 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 691dc09aa23c8a57db897c070e394a0f74753d0c
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 23 22:38:51 2003 +0000
Reviewed by John.
- fixed 3154647 -- Triple clicked on a line of text (to select entire line), crashola
* khtml/khtml_part.cpp:
(firstSlaveAt): Loop instead of using recursion for siblings.
(lastSlaveAt): Ditto, only backwards.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 002d610..59e7117 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,13 @@
+2003-01-23 Darin Adler <darin at apple.com>
+
+ Reviewed by John.
+
+ - fixed 3154647 -- Triple clicked on a line of text (to select entire line), crashola
+
+ * khtml/khtml_part.cpp:
+ (firstSlaveAt): Loop instead of using recursion for siblings.
+ (lastSlaveAt): Ditto, only backwards.
+
2003-01-23 David Hyatt <hyatt at apple.com>
Fix for 3142124.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 002d610..59e7117 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,13 @@
+2003-01-23 Darin Adler <darin at apple.com>
+
+ Reviewed by John.
+
+ - fixed 3154647 -- Triple clicked on a line of text (to select entire line), crashola
+
+ * khtml/khtml_part.cpp:
+ (firstSlaveAt): Loop instead of using recursion for siblings.
+ (lastSlaveAt): Ditto, only backwards.
+
2003-01-23 David Hyatt <hyatt at apple.com>
Fix for 3142124.
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index 4fc3fda..ae95039 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -96,6 +96,9 @@ using namespace DOM;
#include <CoreServices/CoreServices.h>
#endif
+using khtml::RenderText;
+using khtml::TextSlaveArray;
+
namespace khtml {
class PartStyleSheetLoader : public CachedObjectClient
{
@@ -3969,64 +3972,64 @@ void KHTMLPart::customEvent( QCustomEvent *event )
}
#if APPLE_CHANGES
-static bool firstSlaveAt (khtml::RenderObject *renderNode, int y, DOM::NodeImpl*&startNode, long &startOffset)
-{
- bool found = false;
-
- if (renderNode == 0)
- return false;
-
- if (renderNode->isText()){
- khtml::RenderText *textRenderer = static_cast<khtml::RenderText *>(renderNode);
- khtml::TextSlaveArray slaves = textRenderer->textSlaves();
- for (int i = 0; i < (int)slaves.count(); i++){
- if (slaves[i]->m_y == y){
- startNode = textRenderer->element();
- startOffset = slaves[i]->m_start;
- return true;
+
+static bool firstSlaveAt(RenderObject *renderNode, int y, NodeImpl *&startNode, long &startOffset)
+{
+ for (RenderObject *n = renderNode; n; n = n->nextSibling()) {
+ if (n->isText()) {
+ RenderText *textRenderer = static_cast<khtml::RenderText *>(n);
+ TextSlaveArray slaves = textRenderer->textSlaves();
+ for (unsigned i = 0; i != slaves.count(); i++) {
+ if (slaves[i]->m_y == y) {
+ startNode = textRenderer->element();
+ startOffset = slaves[i]->m_start;
+ return true;
+ }
}
}
+
+ if (firstSlaveAt(n->firstChild(), y, startNode, startOffset)) {
+ return true;
+ }
}
- found = firstSlaveAt(renderNode->firstChild(), y, startNode, startOffset);
- if (found)
- return found;
-
- found = firstSlaveAt(renderNode->nextSibling(), y, startNode, startOffset);
- if (found)
- return found;
-
return false;
}
-static bool lastSlaveAt (khtml::RenderObject *renderNode, int y, DOM::NodeImpl*&endNode, long &endOffset)
+static bool lastSlaveAt(RenderObject *renderNode, int y, NodeImpl *&endNode, long &endOffset)
{
- bool found = false;
-
- if (renderNode == 0)
+ RenderObject *n = renderNode;
+ if (!n) {
return false;
-
- found = lastSlaveAt(renderNode->nextSibling(), y, endNode, endOffset);
- if (found)
- return found;
+ }
+ RenderObject *next;
+ while ((next = n->nextSibling())) {
+ n = next;
+ }
- found = lastSlaveAt(renderNode->firstChild(), y, endNode, endOffset);
- if (found)
- return found;
-
- if (renderNode->isText()){
- khtml::RenderText *textRenderer = static_cast<khtml::RenderText *>(renderNode);
- khtml::TextSlaveArray slaves = textRenderer->textSlaves();
- for (int i = (int)slaves.count()-1; i >= 0; i--){
- if (slaves[i]->m_y == y){
- endNode = textRenderer->element();
- endOffset = slaves[i]->m_start + slaves[i]->m_len;
- return true;
+ while (1) {
+ if (lastSlaveAt(n->firstChild(), y, endNode, endOffset)) {
+ return true;
+ }
+
+ if (n->isText()) {
+ RenderText *textRenderer = static_cast<khtml::RenderText *>(n);
+ TextSlaveArray slaves = textRenderer->textSlaves();
+ for (int i = (int)slaves.count()-1; i >= 0; i--) {
+ if (slaves[i]->m_y == y) {
+ endNode = textRenderer->element();
+ endOffset = slaves[i]->m_start + slaves[i]->m_len;
+ return true;
+ }
}
}
+
+ if (n == renderNode) {
+ return false;
+ }
+
+ n = n->previousSibling();
}
-
- return false;
}
static bool startAndEndLineNodesIncludingNode (DOM::NodeImpl *node, int offset, DOM::Node &_startNode, long &startOffset, DOM::Node &_endNode, long &endOffset)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list