<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>25217</bug_id>
          
          <creation_ts>2009-04-15 12:22:59 -0700</creation_ts>
          <short_desc>Clean up SVGLocatable.cpp</short_desc>
          <delta_ts>2009-04-15 12:33:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117646</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-15 12:22:59 -0700</bug_when>
    <thetext>Clean up SVGLocatable.cpp

See attached (simple) patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117647</commentid>
    <comment_count>1</comment_count>
      <attachid>29511</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-15 12:23:49 -0700</bug_when>
    <thetext>Created attachment 29511
Simplify nearestViewportElement and farthestViewportElement using isViewportElement and a for loop

 WebCore/ChangeLog            |   16 +++++++++
 WebCore/svg/SVGLocatable.cpp |   72 ++++++++++++++++--------------------------
 2 files changed, 43 insertions(+), 45 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117648</commentid>
    <comment_count>2</comment_count>
      <attachid>29511</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-04-15 12:29:21 -0700</bug_when>
    <thetext>Comment on attachment 29511
Simplify nearestViewportElement and farthestViewportElement using isViewportElement and a for loop


&gt; +static bool isViewportElement(Node* node)
&gt;  {
&gt; -    Node* n = e-&gt;parentNode();
&gt; -    while (n &amp;&amp; !n-&gt;isDocumentNode()) {
&gt; -        if (n-&gt;hasTagName(SVGNames::svgTag) || n-&gt;hasTagName(SVGNames::symbolTag) ||
&gt; -            n-&gt;hasTagName(SVGNames::imageTag))
&gt; -            return static_cast&lt;SVGElement*&gt;(n);
&gt; +    if (node-&gt;hasTagName(SVGNames::svgTag)
&gt; +        || node-&gt;hasTagName(SVGNames::symbolTag)
&gt;  #if ENABLE(SVG_FOREIGN_OBJECT)
&gt; -        if (n-&gt;hasTagName(SVGNames::foreignObjectTag))
&gt; -            return static_cast&lt;SVGElement*&gt;(n);
&gt; +        || node-&gt;hasTagName(SVGNames::foreignObjectTag)
&gt;  #endif
&gt; +        || node-&gt;hasTagName(SVGNames::imageTag))
&gt; +            return true;
&gt; +    return false;

You could just do

   return node-&gt;hasTagName(SVGNames::svgTag) || .......

r=me either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117650</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-15 12:33:39 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/svg/SVGLocatable.cpp
Committed r42552
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29511</attachid>
            <date>2009-04-15 12:23:49 -0700</date>
            <delta_ts>2009-04-15 12:25:59 -0700</delta_ts>
            <desc>Simplify nearestViewportElement and farthestViewportElement using isViewportElement and a for loop</desc>
            <filename>lify-nearestViewportElement-and-farthestViewportElement-using-isViewportElement-and-a-for-loop.patch</filename>
            <type>text/plain</type>
            <size>5091</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OTAwZmFjOGY5ZDdiYmIzNmU0MzliNjM2ZjczMGE0ZjE3NTY0N2QxNwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhY2ZlOWY4Li5mZWZiZjc4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDA5LTA0LTE1ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMTcKKyAgICAgICAgU2ltcGxp
ZnkgbmVhcmVzdFZpZXdwb3J0RWxlbWVudCBhbmQgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQgdXNp
bmcgaXNWaWV3cG9ydEVsZW1lbnQgYW5kIGEgZm9yIGxvb3AKKyAgICAgICAgQWRkIEFTU0VSVChl
bGVtZW50KSB0byBhbGwgdGhlc2UgZnVuY3Rpb25zIHNpbmNlIHRoZXkgc2hvdWxkIG5ldmVyIGJl
IHBhc3NlZCBhIG51bGwgZWxlbWVudC4KKworICAgICAgICAqIHN2Zy9TVkdMb2NhdGFibGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNWaWV3cG9ydEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTG9jYXRhYmxlOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xvY2F0YWJsZTo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xvY2F0
YWJsZTo6Z2V0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xvY2F0YWJsZTo6Z2V0U2NyZWVu
Q1RNKToKKwogMjAwOS0wNC0xNSAgRXJpYyBSb21hbiAgPGVyb21hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2
Zy9TVkdMb2NhdGFibGUuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAppbmRleCAw
MDJiZjI4Li4yNGFjNjA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3Bw
CisrKyBiL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAgLTEsOCArMSw3IEBACiAvKgog
ICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hA
a2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1
aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAor
ICAgIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQwLDY5ICszOSw1NCBAQCBTVkdMb2NhdGFibGU6On5T
VkdMb2NhdGFibGUoKQogewogfQogCi1TVkdFbGVtZW50KiBTVkdMb2NhdGFibGU6Om5lYXJlc3RW
aWV3cG9ydEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVudCogZSkKK3N0YXRpYyBib29sIGlzVmlld3Bv
cnRFbGVtZW50KE5vZGUqIG5vZGUpCiB7Ci0gICAgTm9kZSogbiA9IGUtPnBhcmVudE5vZGUoKTsK
LSAgICB3aGlsZSAobiAmJiAhbi0+aXNEb2N1bWVudE5vZGUoKSkgewotICAgICAgICBpZiAobi0+
aGFzVGFnTmFtZShTVkdOYW1lczo6c3ZnVGFnKSB8fCBuLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpz
eW1ib2xUYWcpIHx8Ci0gICAgICAgICAgICBuLT5oYXNUYWdOYW1lKFNWR05hbWVzOjppbWFnZVRh
ZykpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG4pOworICAg
IGlmIChub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzdmdUYWcpCisgICAgICAgIHx8IG5vZGUt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN5bWJvbFRhZykKICNpZiBFTkFCTEUoU1ZHX0ZPUkVJR05f
T0JKRUNUKQotICAgICAgICBpZiAobi0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVj
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG4pOwor
ICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQog
I2VuZGlmCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmltYWdlVGFnKSkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KIAotICAgICAg
ICBuID0gbi0+cGFyZW50Tm9kZSgpOworU1ZHRWxlbWVudCogU1ZHTG9jYXRhYmxlOjpuZWFyZXN0
Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgQVNTRVJU
KGVsZW1lbnQpOworICAgIGZvciAoTm9kZSogbiA9IGVsZW1lbnQtPnBhcmVudE5vZGUoKTsgbiAm
JiAhbi0+aXNEb2N1bWVudE5vZGUoKTsgbiA9IG4tPnBhcmVudE5vZGUoKSkgeworICAgICAgICBp
ZiAoaXNWaWV3cG9ydEVsZW1lbnQobikpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
U1ZHRWxlbWVudCo+KG4pOwogICAgIH0KIAogICAgIHJldHVybiAwOwogfQogCi1TVkdFbGVtZW50
KiBTVkdMb2NhdGFibGU6OmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR0VsZW1lbnQq
IGUpCitTVkdFbGVtZW50KiBTVkdMb2NhdGFibGU6OmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KGNv
bnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgLy8gRklYTUUgOiBsaWtlbHkgdGhpcyB3
aWxsIGJlIGFsd2F5cyB0aGUgPHN2Zz4gZmFydGhlc3QgYXdheS4KLSAgICAvLyBJZiB3ZSBoYXZl
IGEgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50RWxlbWVudCgpLCBvbmUKLSAg
ICAvLyB0aGF0IGdpdmUgdGhlIGRvY3VtZW50RWxlbWVudCgpIG9mIHRoZSBzdmcgZnJhZ21lbnQs
IGl0IGNvdWxkIGJlCi0gICAgLy8gdXNlZCBpbnN0ZWFkLiBUaGlzIGRlcGVuZHMgb24gY2RmIGRl
bWFuZHMgdGhvdWdoKFJvYi4pCisgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIFNWR0VsZW1lbnQq
IGZhcnRoZXN0ID0gMDsKLSAgICBOb2RlKiBuID0gZS0+cGFyZW50Tm9kZSgpOwotICAgIHdoaWxl
IChuICYmICFuLT5pc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChuLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjpzdmdUYWcpIHx8IG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN5bWJvbFRhZykg
fHwKLSAgICAgICAgICAgIG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmltYWdlVGFnKSkKLSAgICAg
ICAgICAgIGZhcnRoZXN0ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG4pOwotI2lmIEVOQUJM
RShTVkdfRk9SRUlHTl9PQkpFQ1QpCi0gICAgICAgIGlmIChuLT5oYXNUYWdOYW1lKFNWR05hbWVz
Ojpmb3JlaWduT2JqZWN0VGFnKSkKKyAgICBmb3IgKE5vZGUqIG4gPSBlbGVtZW50LT5wYXJlbnRO
b2RlKCk7IG4gJiYgIW4tPmlzRG9jdW1lbnROb2RlKCk7IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsK
KyAgICAgICAgaWYgKGlzVmlld3BvcnRFbGVtZW50KG4pKQogICAgICAgICAgICAgZmFydGhlc3Qg
PSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obik7Ci0jZW5kaWYKLQotICAgICAgICBuID0gbi0+
cGFyZW50Tm9kZSgpOwogICAgIH0KLQogICAgIHJldHVybiBmYXJ0aGVzdDsKIH0KIAotLy8gU3Bl
YzoKLS8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDUvV0QtU1ZHTW9iaWxlMTItMjAwNTA0MTMv
c3ZndWRvbS5odG1sI3N2Zzo6U1ZHTG9jYXRhYmxlCi1GbG9hdFJlY3QgU1ZHTG9jYXRhYmxlOjpn
ZXRCQm94KGNvbnN0IFNWR0VsZW1lbnQqIGUpCitGbG9hdFJlY3QgU1ZHTG9jYXRhYmxlOjpnZXRC
Qm94KGNvbnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgRmxvYXRSZWN0IGJib3hSZWN0
OworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOwogCi0gICAgZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CisgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN1cHBv
cnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCisgICAgaWYgKCFlbGVtZW50LT5yZW5k
ZXJlcigpKQorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAKLSAgICBpZiAoZSAmJiBlLT5y
ZW5kZXJlcigpKSB7Ci0gICAgICAgIC8vIE5lZWQgdGhpcyB0byBtYWtlIHN1cmUgd2UgaGF2ZSBy
ZW5kZXIgb2JqZWN0IGRpbWVuc2lvbnMuCi0gICAgICAgIC8vIFNlZSBidWcgMTE2ODYuCi0gICAg
ICAgIGJib3hSZWN0ID0gZS0+cmVuZGVyZXIoKS0+cmVsYXRpdmVCQm94KGZhbHNlKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gYmJveFJlY3Q7CisgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCkt
PnJlbGF0aXZlQkJveChmYWxzZSk7CiB9CiAKIFRyYW5zZm9ybWF0aW9uTWF0cml4IFNWR0xvY2F0
YWJsZTo6Z2V0Q1RNKGNvbnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVt
ZW50KQotICAgICAgICByZXR1cm4gVHJhbnNmb3JtYXRpb25NYXRyaXgoKTsKLQorICAgIEFTU0VS
VChlbGVtZW50KTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdG07CiAKICAgICBOb2RlKiBw
YXJlbnQgPSBlbGVtZW50LT5wYXJlbnROb2RlKCk7CkBAIC0xMTksOSArMTAzLDcgQEAgVHJhbnNm
b3JtYXRpb25NYXRyaXggU1ZHTG9jYXRhYmxlOjpnZXRDVE0oY29uc3QgU1ZHRWxlbWVudCogZWxl
bWVudCkKIAogVHJhbnNmb3JtYXRpb25NYXRyaXggU1ZHTG9jYXRhYmxlOjpnZXRTY3JlZW5DVE0o
Y29uc3QgU1ZHRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAg
IHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpOwotCisgICAgQVNTRVJUKGVsZW1lbnQpOwog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN0bTsKIAogICAgIE5vZGUqIHBhcmVudCA9IGVsZW1l
bnQtPnBhcmVudE5vZGUoKTsK
</data>
<flag name="review"
          id="14712"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>