<?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>90415</bug_id>
          
          <creation_ts>2012-07-02 17:21:29 -0700</creation_ts>
          <short_desc>Make ComposedShadowTreeWalker::traverseParent() use an iterative algorithm, not a recursive-one.</short_desc>
          <delta_ts>2013-01-06 20:41:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</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>
          
          <blocked>82702</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>tasak</cc>
    
    <cc>webcomponents-bugzilla</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>661830</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-07-02 17:21:29 -0700</bug_when>
    <thetext>Make it use an iterative algorithm, not a recursive-one, so that we can make it inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661834</commentid>
    <comment_count>1</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-07-02 17:25:03 -0700</bug_when>
    <thetext>Now ComposedShadowTreeWalker::traverseParent(0 is used from NodeRenderingContext.
It is worth making it inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661999</commentid>
    <comment_count>2</comment_count>
      <attachid>150545</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-07-02 23:29:28 -0700</bug_when>
    <thetext>Created attachment 150545
wip.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150545</attachid>
            <date>2012-07-02 23:29:28 -0700</date>
            <delta_ts>2012-07-02 23:29:28 -0700</delta_ts>
            <desc>wip.</desc>
            <filename>bug-90415-20120703152927.patch</filename>
            <type>text/plain</type>
            <size>6599</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFjMGQyMmRlZmFmYjE5
M2JiOTI2NmUxNGY4ZmUxMjVmM2ExMjk4MS4uODUyODQ5NTFhYjU3Y2FlYjk0ZmVlOTMwMjc4MjNm
M2ViOTZmN2ZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA3LTAyICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIENvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnQoKSB1c2UgYW4gaXRlcmF0aXZlIGFsZ29yaXRo
bSwgbm90IGEgcmVjdXJzaXZlLW9uZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkwNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisg
ICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnRCYWNrVG9Z
b3VuZ2VyU2hhZG93Um9vdE9ySG9zdCk6CisgICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlci5oOgorICAgICAgICAoQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKToKKwogMjAxMi0w
Ny0wMSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSB0aGUgIkluc3BlY3QgRWxlbWVudCIgY29udGV4dCBtZW51IGl0ZW0gYXBwZWFyIGluIG5pZ2h0
bHkgYnVpbGRzIGFnYWluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmNwcAppbmRleCAzMmU4ZTBkMTE4YmFmOGQ5YTJmZTJlMjk1ZjA2MTExYmVkMDA1
YzgzLi5jMGJjYjllMzc0YjEyMjkyYzBiOTdjODhlZWJhY2QwOThhYWM5MDU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApAQCAtMjAzLDE2
ICsyMDMsNiBAQCBpbmxpbmUgTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjplc2NhcGVG
YWxsYmFja0NvbnRlbnRFbGVtZW50KGNvbnN0IE5vZGUqCiAgICAgcmV0dXJuIDA7CiB9CiAKLWlu
bGluZSBOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZUVzY2FwaW5n
RmFsbGJhY2tDb250ZW50cyhjb25zdCBOb2RlKiBub2RlLCBQYXJlbnRUcmFudmVyc2FsRGV0YWls
cyogZGV0YWlscykgY29uc3QKLXsKLSAgICBBU1NFUlQobm9kZSk7Ci0gICAgaWYgKCFpc0luc2Vy
dGlvblBvaW50KG5vZGUpKQotICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxOb2RlKj4obm9kZSk7
Ci0gICAgY29uc3QgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50ID0gdG9JbnNlcnRpb25Q
b2ludChub2RlKTsKLSAgICByZXR1cm4gaW5zZXJ0aW9uUG9pbnQtPmhhc0Rpc3RyaWJ1dGlvbigp
ID8gMCA6Ci0gICAgICAgIGluc2VydGlvblBvaW50LT5pc0FjdGl2ZSgpID8gdHJhdmVyc2VQYXJl
bnQobm9kZSwgZGV0YWlscykgOiBjb25zdF9jYXN0PE5vZGUqPihub2RlKTsKLX0KLQogdm9pZCBD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudCgpCiB7CiAgICAgYXNzZXJ0UHJlY29uZGl0
aW9uKCk7CkBAIC0yMjIsNTEgKzIxMiw2NiBAQCB2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6cGFyZW50KCkKIAogaW5saW5lIE5vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJh
dmVyc2VQYXJlbnQoY29uc3QgTm9kZSogbm9kZSwgUGFyZW50VHJhbnZlcnNhbERldGFpbHMqIGRl
dGFpbHMpIGNvbnN0CiB7Ci0gICAgaWYgKCFjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSAmJiBub2Rl
LT5pc1NoYWRvd1Jvb3QoKSkgewotICAgICAgICBBU1NFUlQodG9TaGFkb3dSb290KG5vZGUpLT5p
c1lvdW5nZXN0KCkpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgaWYgKEVsZW1lbnRT
aGFkb3cqIHNoYWRvdyA9IHNoYWRvd09mUGFyZW50KG5vZGUpKSB7Ci0gICAgICAgIHNoYWRvdy0+
ZW5zdXJlRGlzdHJpYnV0aW9uKCk7Ci0gICAgICAgIGlmIChJbnNlcnRpb25Qb2ludCogaW5zZXJ0
aW9uUG9pbnQgPSBzaGFkb3ctPmluc2VydGlvblBvaW50Rm9yKG5vZGUpKSB7CisgICAgd2hpbGUg
KHRydWUpIHsKKyAgICAgICAgaWYgKCFjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSAmJiBub2RlLT5p
c1NoYWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgQVNTRVJUKHRvU2hhZG93Um9vdChub2RlKS0+
aXNZb3VuZ2VzdCgpKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAg
IGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBzaGFkb3dPZlBhcmVudChub2RlKSkgeworICAg
ICAgICAgICAgc2hhZG93LT5lbnN1cmVEaXN0cmlidXRpb24oKTsKKyAgICAgICAgICAgIGlmIChJ
bnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQgPSBzaGFkb3ctPmluc2VydGlvblBvaW50Rm9y
KG5vZGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGRldGFpbHMpCisgICAgICAgICAgICAgICAg
ICAgIGRldGFpbHMtPmRpZFRyYXZlcnNlSW5zZXJ0aW9uUG9pbnQoaW5zZXJ0aW9uUG9pbnQpOwor
ICAgICAgICAgICAgICAgIG5vZGUgPSBpbnNlcnRpb25Qb2ludDsKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFRoZSBub2RlIGlzIGEgbm9u
LWRpc3RyaWJ1dGVkIGxpZ2h0IGNoaWxkIG9yIG9sZGVyIHNoYWRvdydzIGNoaWxkLgogICAgICAg
ICAgICAgaWYgKGRldGFpbHMpCi0gICAgICAgICAgICAgICAgZGV0YWlscy0+ZGlkVHJhdmVyc2VJ
bnNlcnRpb25Qb2ludChpbnNlcnRpb25Qb2ludCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJhdmVy
c2VQYXJlbnQoaW5zZXJ0aW9uUG9pbnQsIGRldGFpbHMpOworICAgICAgICAgICAgICAgIGRldGFp
bHMtPmNoaWxkV2FzT3V0T2ZDb21wb3NpdGlvbigpOwogICAgICAgICB9Ci0KLSAgICAgICAgLy8g
VGhlIG5vZGUgaXMgYSBub24tZGlzdHJpYnV0ZWQgbGlnaHQgY2hpbGQgb3Igb2xkZXIgc2hhZG93
J3MgY2hpbGQuCi0gICAgICAgIGlmIChkZXRhaWxzKQotICAgICAgICAgICAgZGV0YWlscy0+Y2hp
bGRXYXNPdXRPZkNvbXBvc2l0aW9uKCk7CisgICAgICAgIC8vIFRyYXZlcnNlcyBpbiB0aGUgY3Vy
cmVudCB0cmVlLgorICAgICAgICBOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7Cisg
ICAgICAgIGlmICghcGFyZW50KQorICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpZiAocGFy
ZW50LT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKKyAg
ICAgICAgICBub2RlID0gdHJhdmVyc2VQYXJlbnRCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdE9ySG9z
dCh0b1NoYWRvd1Jvb3QocGFyZW50KSwgZGV0YWlscywgZm91bmQpOworICAgICAgICAgIGlmIChm
b3VuZCkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihub2RlKTsKKyAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBFc2NhcGVzIGZhbGxiYWNrIGNv
bnRlbnRzLgorICAgICAgICBpZiAoIWlzSW5zZXJ0aW9uUG9pbnQocGFyZW50KSkKKyAgICAgICAg
ICAgIHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihwYXJlbnQpOworICAgICAgICBjb25zdCBJbnNl
cnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQgPSB0b0luc2VydGlvblBvaW50KHBhcmVudCk7Cisg
ICAgICAgIGlmIChpbnNlcnRpb25Qb2ludC0+aGFzRGlzdHJpYnV0aW9uKCkpCisgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgaWYgKGluc2VydGlvblBvaW50LT5pc0FjdGl2ZSgpKQorICAg
ICAgICAgICAgbm9kZSA9IHBhcmVudDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJu
IHBhcmVudDsKICAgICB9Ci0gICAgcmV0dXJuIHRyYXZlcnNlUGFyZW50SW5DdXJyZW50VHJlZShu
b2RlLCBkZXRhaWxzKTsKLX0KLQotaW5saW5lIE5vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6dHJhdmVyc2VQYXJlbnRJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUqIG5vZGUsIFBhcmVudFRy
YW52ZXJzYWxEZXRhaWxzKiBkZXRhaWxzKSBjb25zdAotewotICAgIGlmIChOb2RlKiBwYXJlbnQg
PSBub2RlLT5wYXJlbnROb2RlKCkpCi0gICAgICAgIHJldHVybiBwYXJlbnQtPmlzU2hhZG93Um9v
dCgpID8gdHJhdmVyc2VQYXJlbnRCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdE9ySG9zdCh0b1NoYWRv
d1Jvb3QocGFyZW50KSwgZGV0YWlscykgOiB0cmF2ZXJzZU5vZGVFc2NhcGluZ0ZhbGxiYWNrQ29u
dGVudHMocGFyZW50LCBkZXRhaWxzKTsKLSAgICByZXR1cm4gMDsKIH0KIAotaW5saW5lIE5vZGUq
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnRCYWNrVG9Zb3VuZ2VyU2hh
ZG93Um9vdE9ySG9zdChjb25zdCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBQYXJlbnRUcmFudmVy
c2FsRGV0YWlscyogZGV0YWlscykgY29uc3QKK2lubGluZSBOb2RlKiBDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50QmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QoY29u
c3QgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgUGFyZW50VHJhbnZlcnNhbERldGFpbHMqIGRldGFp
bHMsIGJvb2wmIGZvdW5kKSBjb25zdAogewogICAgIEFTU0VSVChzaGFkb3dSb290KTsKICAgICBp
ZiAoc2hhZG93Um9vdC0+aXNZb3VuZ2VzdCgpKSB7CisgICAgICBmb3VuZCA9IHRydWU7CiAgICAg
ICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkgewogICAgICAgICAgICAgaWYgKGRldGFp
bHMpCiAgICAgICAgICAgICAgICAgZGV0YWlscy0+ZGlkVHJhdmVyc2VTaGFkb3dSb290KHNoYWRv
d1Jvb3QpOwogICAgICAgICAgICAgcmV0dXJuIHNoYWRvd1Jvb3QtPmhvc3QoKTsKICAgICAgICAg
fQotCiAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFNoYWRvd1Jvb3QqPihzaGFkb3dSb290KTsK
ICAgICB9CiAKICAgICBpZiAoSW5zZXJ0aW9uUG9pbnQqIGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQg
PSBzaGFkb3dSb290LT5hc3NpZ25lZFRvKCkpIHsKICAgICAgICAgaWYgKGRldGFpbHMpCiAgICAg
ICAgICAgICBkZXRhaWxzLT5kaWRUcmF2ZXJzZVNoYWRvd1Jvb3Qoc2hhZG93Um9vdCk7Ci0gICAg
ICAgIHJldHVybiB0cmF2ZXJzZVBhcmVudChhc3NpZ25lZEluc2VydGlvblBvaW50LCBkZXRhaWxz
KTsKKyAgICAgICAgcmV0dXJuIGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQ7CiAgICAgfQotCisgICAg
Zm91bmQgPSB0cnVlOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgKaW5kZXggMGFmMzRjZDQyYTk4N2M2NTk4ZmMyOThk
YTYyZDQwZWZjMzA2MWJkNi4uZTJkYmZjM2VmOTc5ZjIzZTY5ZGQzMzQxN2IxNjc4N2I0Yjg2ZDZj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaApA
QCAtMTQyLDkgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlU2li
bGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3QoY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVj
dGlvbik7CiAgICAgc3RhdGljIE5vZGUqIGVzY2FwZUZhbGxiYWNrQ29udGVudEVsZW1lbnQoY29u
c3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CiAKLSAgICBOb2RlKiB0cmF2ZXJzZU5vZGVF
c2NhcGluZ0ZhbGxiYWNrQ29udGVudHMoY29uc3QgTm9kZSosIFBhcmVudFRyYW52ZXJzYWxEZXRh
aWxzKiA9IDApIGNvbnN0OwotICAgIE5vZGUqIHRyYXZlcnNlUGFyZW50SW5DdXJyZW50VHJlZShj
b25zdCBOb2RlKiwgUGFyZW50VHJhbnZlcnNhbERldGFpbHMqID0gMCkgY29uc3Q7Ci0gICAgTm9k
ZSogdHJhdmVyc2VQYXJlbnRCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdE9ySG9zdChjb25zdCBTaGFk
b3dSb290KiwgUGFyZW50VHJhbnZlcnNhbERldGFpbHMqID0gMCkgY29uc3Q7CisgICAgTm9kZSog
dHJhdmVyc2VQYXJlbnRCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdE9ySG9zdChjb25zdCBTaGFkb3dS
b290KiwgUGFyZW50VHJhbnZlcnNhbERldGFpbHMqLCBib29sJiBmb3VuZCkgY29uc3Q7CiAKICAg
ICBjb25zdCBOb2RlKiBtX25vZGU7CiAgICAgUG9saWN5IG1fcG9saWN5Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>