[webkit-changes] cvs commit: WebCore/kwq WebCoreBridge.mm
Vicki
vicki at opensource.apple.com
Tue Nov 15 14:53:45 PST 2005
vicki 05/11/15 14:53:45
Modified: . ChangeLog
kwq WebCoreBridge.mm
Log:
Reviewed by Tim O.
Improve this loop. We'd get an infinite loop in the old code if we came across a part with no renderer, such as a frame whose src is an image.
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge elementAtPoint:]):
Revision Changes Path
1.371 +9 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.370
retrieving revision 1.371
diff -u -r1.370 -r1.371
--- ChangeLog 15 Nov 2005 20:02:22 -0000 1.370
+++ ChangeLog 15 Nov 2005 22:53:41 -0000 1.371
@@ -1,3 +1,12 @@
+2005-11-15 Vicki Murley <vicki at apple.com>
+
+ Reviewed by Tim O.
+
+ Improve this loop. We'd get an infinite loop in the old code if we came across a part with no renderer, such as a frame whose src is an image.
+
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge elementAtPoint:]):
+
2005-11-15 Adele Peterson <adele at apple.com>
Reviewed by Darin.
1.431 +18 -18 WebCore/kwq/WebCoreBridge.mm
Index: WebCoreBridge.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
retrieving revision 1.430
retrieving revision 1.431
diff -u -r1.430 -r1.431
--- WebCoreBridge.mm 15 Nov 2005 19:15:20 -0000 1.430
+++ WebCoreBridge.mm 15 Nov 2005 22:53:44 -0000 1.431
@@ -1033,25 +1033,25 @@
NodeImpl *n;
QWidget *widget = 0;
- do {
+ while (true) {
n = nodeInfo.innerNode();
- if (n && n->renderer() && n->renderer()->isWidget()) {
- widget = static_cast<RenderWidget *>(n->renderer())->widget();
- if (widget && widget->inherits("KHTMLView")) {
- KHTMLPart *kpart = static_cast<DOM::HTMLFrameElementImpl *>(n)->contentPart();
- if (kpart && static_cast<KWQKHTMLPart *>(kpart)->renderer()) {
- int _x, _y;
- n->renderer()->absolutePosition(_x, _y, true);
- _x = (int)point.x - _x;
- _y = (int)point.y - _y;
- RenderObject::NodeInfo widgetNodeInfo(true, true);
- static_cast<KWQKHTMLPart *>(kpart)->renderer()->layer()->hitTest(widgetNodeInfo, _x, _y);
- nodeInfo = widgetNodeInfo;
- }
- }
- }
- } while (n && n->renderer() && n->renderer()->isWidget() && widget && widget->inherits("KHTMLView"));
-
+ if (!n || !n->renderer() || !n->renderer()->isWidget())
+ break;
+ widget = static_cast<RenderWidget *>(n->renderer())->widget();
+ if (!widget || !widget->inherits("KHTMLView"))
+ break;
+ KHTMLPart *kpart = static_cast<DOM::HTMLFrameElementImpl *>(n)->contentPart();
+ if (!kpart || !static_cast<KWQKHTMLPart *>(kpart)->renderer())
+ break;
+ int _x, _y;
+ n->renderer()->absolutePosition(_x, _y, true);
+ _x = (int)point.x - _x;
+ _y = (int)point.y - _y;
+ RenderObject::NodeInfo widgetNodeInfo(true, true);
+ static_cast<KWQKHTMLPart *>(kpart)->renderer()->layer()->hitTest(widgetNodeInfo, _x, _y);
+ nodeInfo = widgetNodeInfo;
+ }
+
NSMutableDictionary *element = [NSMutableDictionary dictionary];
[element setObject:[NSNumber numberWithBool:_part->isPointInsideSelection((int)point.x, (int)point.y)]
forKey:WebCoreElementIsSelectedKey];
More information about the webkit-changes
mailing list