<?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>146038</bug_id>
          
          <creation_ts>2015-06-16 17:09:12 -0700</creation_ts>
          <short_desc>Position::findParent() should take a reference</short_desc>
          <delta_ts>2015-06-17 17:50:33 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1102403</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2015-06-16 17:09:12 -0700</bug_when>
    <thetext>Position::findParent() should take a reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102404</commentid>
    <comment_count>1</comment_count>
      <attachid>254982</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2015-06-16 17:10:31 -0700</bug_when>
    <thetext>Created attachment 254982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102451</commentid>
    <comment_count>2</comment_count>
      <attachid>254982</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-16 20:07:16 -0700</bug_when>
    <thetext>Comment on attachment 254982
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=254982&amp;action=review

&gt; Source/WebCore/dom/Position.cpp:165
&gt; +        return findParent(*m_anchorNode.get());

No need for .get() here.

&gt; Source/WebCore/dom/Position.cpp:225
&gt; +        if (findParent(*m_anchorNode.get()) &amp;&amp; (editingIgnoresContent(m_anchorNode.get()) || isRenderedTable(m_anchorNode.get())))

No need for .get() in the *m_anchorNode part.

&gt; Source/WebCore/dom/Position.cpp:314
&gt; +        if (!node)
&gt; +            return *this;

Looks like this fixes a bug. Can we make a test that shows this was broken before?

&gt; Source/WebCore/dom/Position.cpp:367
&gt; +        if (!node)
&gt; +            return *this;

Looks like this fixes a bug. Can we make a test that shows this was broken before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102723</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2015-06-17 17:39:26 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 254982 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=254982&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Position.cpp:165
&gt; &gt; +        return findParent(*m_anchorNode.get());
&gt; 
&gt; No need for .get() here.
&gt; 
&gt; &gt; Source/WebCore/dom/Position.cpp:225
&gt; &gt; +        if (findParent(*m_anchorNode.get()) &amp;&amp; (editingIgnoresContent(m_anchorNode.get()) || isRenderedTable(m_anchorNode.get())))
&gt; 
&gt; No need for .get() in the *m_anchorNode part.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/dom/Position.cpp:314
&gt; &gt; +        if (!node)
&gt; &gt; +            return *this;
&gt; 
&gt; Looks like this fixes a bug. Can we make a test that shows this was broken
&gt; before?
&gt; 
&gt; &gt; Source/WebCore/dom/Position.cpp:367
&gt; &gt; +        if (!node)
&gt; &gt; +            return *this;
&gt; 
&gt; Looks like this fixes a bug. Can we make a test that shows this was broken
&gt; before?

I couldn’t find a way to make this crash. I looked for existing bug reports and found &lt;rdar://problem/21026135&gt;, but I was unable to reproduce a crash given the repro steps in the bug.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102728</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2015-06-17 17:50:33 -0700</bug_when>
    <thetext>Committed r185682: &lt;http://trac.webkit.org/changeset/185682&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254982</attachid>
            <date>2015-06-16 17:10:31 -0700</date>
            <delta_ts>2015-06-16 20:07:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146038-20150616170955.patch</filename>
            <type>text/plain</type>
            <size>5128</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UyMGUyZjgxMmRhOTk5
ZjBhZTA2ZjA0MDE2YmMxMjExNDNiMzA0Ny4uMTZkZDVmMmQwODhhYjE3ODliYjRhYjc5OGM0NWJm
NDI4ZjFjNGFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA2LTE2ICBKb24g
SG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgUG9zaXRpb246OmZp
bmRQYXJlbnQoKSBzaG91bGQgdGFrZSBhIHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNvbnRhaW5lck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9z
aXRpb246OnBhcmVudEFuY2hvcmVkRXF1aXZhbGVudCk6CisgICAgICAgIFBhc3MgYSByZWZlcmVu
Y2U7IHRoZXJlIGlzIGFscmVhZHkgYSBudWxsIGNoZWNrLgorICAgICAgICAoV2ViQ29yZTo6UG9z
aXRpb246OnByZXZpb3VzKToKKyAgICAgICAgQWRkIGEgbWlzc2luZyBudWxsIGNoZWNrLiBDb2Rl
IGJlbG93IHRoaXMgZXhwZWN0cyB0aGF0IG5vZGUgaXMgbm9uLW51bGwuCisgICAgICAgIChXZWJD
b3JlOjpQb3NpdGlvbjo6bmV4dCk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
UG9zaXRpb246OmF0U3RhcnRPZlRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmF0
RW5kT2ZUcmVlKToKKyAgICAgICAgUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6
OlBvc2l0aW9uOjpmaW5kUGFyZW50KToKKyAgICAgICAgQ2hhbmdlZCB0byB0YWtlIGEgcmVmZXJl
bmNlLgorCisgICAgICAgICogZG9tL1Bvc2l0aW9uLmg6CisgICAgICAgIERpdHRvLgorCiAyMDE1
LTA2LTE1ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gQ3Jhc2ggbG9uZyBwcmVzc2luZyBvbiA8aW5wdXQgdHlwZT1maWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAKaW5kZXggZWQ5ZTI0ODBhNmYzNzFmMTcxNzViODRjN2I0NmNjYWM0ZTA5YTkw
YS4uN2QxZGY1NDIwZDA0MTI5NDBiNDBhNmY0MjRjMWQ2YjgwMDg3MDFkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwCkBAIC0xNjIsNyArMTYyLDcgQEAgTm9kZSogUG9zaXRpb246OmNvbnRhaW5l
ck5vZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gbV9hbmNob3JOb2RlLmdldCgpOwogICAgIGNh
c2UgUG9zaXRpb25Jc0JlZm9yZUFuY2hvcjoKICAgICBjYXNlIFBvc2l0aW9uSXNBZnRlckFuY2hv
cjoKLSAgICAgICAgcmV0dXJuIGZpbmRQYXJlbnQobV9hbmNob3JOb2RlLmdldCgpKTsKKyAgICAg
ICAgcmV0dXJuIGZpbmRQYXJlbnQoKm1fYW5jaG9yTm9kZS5nZXQoKSk7CiAgICAgfQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwpAQCAtMjIyLDcgKzIyMiw3
IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpwYXJlbnRBbmNob3JlZEVxdWl2YWxlbnQoKSBjb25zdAog
ICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBmb3IgbGVn
YWN5IHBvc2l0aW9ucywgYnV0IGlzIGFsc28gbmVlZGVkIGZvciBwb3NpdGlvbnMgYmVmb3JlIGFu
ZCBhZnRlciBUYWJsZXMKICAgICBpZiAobV9vZmZzZXQgPD0gMCAmJiAobV9hbmNob3JUeXBlICE9
IFBvc2l0aW9uSXNBZnRlckFuY2hvciAmJiBtX2FuY2hvclR5cGUgIT0gUG9zaXRpb25Jc0FmdGVy
Q2hpbGRyZW4pKSB7Ci0gICAgICAgIGlmIChmaW5kUGFyZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkg
JiYgKGVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpIHx8IGlzUmVuZGVy
ZWRUYWJsZShtX2FuY2hvck5vZGUuZ2V0KCkpKSkKKyAgICAgICAgaWYgKGZpbmRQYXJlbnQoKm1f
YW5jaG9yTm9kZS5nZXQoKSkgJiYgKGVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUu
Z2V0KCkpIHx8IGlzUmVuZGVyZWRUYWJsZShtX2FuY2hvck5vZGUuZ2V0KCkpKSkKICAgICAgICAg
ICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShtX2FuY2hvck5vZGUuZ2V0KCkp
OwogICAgICAgICByZXR1cm4gUG9zaXRpb24obV9hbmNob3JOb2RlLmdldCgpLCAwLCBQb3NpdGlv
bklzT2Zmc2V0SW5BbmNob3IpOwogICAgIH0KQEAgLTMxMCw2ICszMTAsOSBAQCBQb3NpdGlvbiBQ
b3NpdGlvbjo6cHJldmlvdXMoUG9zaXRpb25Nb3ZlVHlwZSBtb3ZlVHlwZSkgY29uc3QKIAogICAg
IGlmIChhbmNob3JUeXBlKCkgPT0gUG9zaXRpb25Jc0JlZm9yZUFuY2hvcikgewogICAgICAgICBu
b2RlID0gY29udGFpbmVyTm9kZSgpOworICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICBy
ZXR1cm4gKnRoaXM7CisKICAgICAgICAgb2Zmc2V0ID0gY29tcHV0ZU9mZnNldEluQ29udGFpbmVy
Tm9kZSgpOwogICAgIH0KIApAQCAtMzMyLDcgKzMzNSw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpw
cmV2aW91cyhQb3NpdGlvbk1vdmVUeXBlIG1vdmVUeXBlKSBjb25zdAogICAgICAgICB9CiAgICAg
fQogCi0gICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gZmluZFBhcmVudChub2RlKTsKKyAgICBD
b250YWluZXJOb2RlKiBwYXJlbnQgPSBmaW5kUGFyZW50KCpub2RlKTsKICAgICBpZiAoIXBhcmVu
dCkKICAgICAgICAgcmV0dXJuICp0aGlzOwogCkBAIC0zNjAsNiArMzYzLDkgQEAgUG9zaXRpb24g
UG9zaXRpb246Om5leHQoUG9zaXRpb25Nb3ZlVHlwZSBtb3ZlVHlwZSkgY29uc3QKIAogICAgIGlm
IChhbmNob3JUeXBlKCkgPT0gUG9zaXRpb25Jc0FmdGVyQW5jaG9yKSB7CiAgICAgICAgIG5vZGUg
PSBjb250YWluZXJOb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAgIHJldHVy
biAqdGhpczsKKwogICAgICAgICBvZmZzZXQgPSBjb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2Rl
KCk7CiAgICAgfQogCkBAIC0zNzYsNyArMzgyLDcgQEAgUG9zaXRpb24gUG9zaXRpb246Om5leHQo
UG9zaXRpb25Nb3ZlVHlwZSBtb3ZlVHlwZSkgY29uc3QKICAgICAgICAgcmV0dXJuIGNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAobW92ZVR5cGUgPT0gQ2hhcmFjdGVyKSA/IHVuY2hl
Y2tlZE5leHRPZmZzZXQobm9kZSwgb2Zmc2V0KSA6IG9mZnNldCArIDEpOwogICAgIH0KIAotICAg
IENvbnRhaW5lck5vZGUqIHBhcmVudCA9IGZpbmRQYXJlbnQobm9kZSk7CisgICAgQ29udGFpbmVy
Tm9kZSogcGFyZW50ID0gZmluZFBhcmVudCgqbm9kZSk7CiAgICAgaWYgKCFwYXJlbnQpCiAgICAg
ICAgIHJldHVybiAqdGhpczsKIApAQCAtNDc4LDcgKzQ4NCw3IEBAIGJvb2wgUG9zaXRpb246OmF0
U3RhcnRPZlRyZWUoKSBjb25zdAogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIE5vZGUqIGNv
bnRhaW5lciA9IGNvbnRhaW5lck5vZGUoKTsKLSAgICBpZiAoY29udGFpbmVyICYmIGZpbmRQYXJl
bnQoY29udGFpbmVyKSkKKyAgICBpZiAoY29udGFpbmVyICYmIGZpbmRQYXJlbnQoKmNvbnRhaW5l
cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAobV9hbmNob3JUeXBlKSB7
CkBAIC01MDMsNyArNTA5LDcgQEAgYm9vbCBQb3NpdGlvbjo6YXRFbmRPZlRyZWUoKSBjb25zdAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIE5vZGUqIGNvbnRhaW5lciA9IGNvbnRhaW5lck5v
ZGUoKTsKLSAgICBpZiAoY29udGFpbmVyICYmIGZpbmRQYXJlbnQoY29udGFpbmVyKSkKKyAgICBp
ZiAoY29udGFpbmVyICYmIGZpbmRQYXJlbnQoKmNvbnRhaW5lcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHN3aXRjaCAobV9hbmNob3JUeXBlKSB7CkBAIC05MzgsOSArOTQ0LDkgQEAg
Ym9vbCBQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUoTm9kZSogbm9kZSkKICAgICByZXR1
cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpICYmIG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCku
dXNlclNlbGVjdCgpID09IFNFTEVDVF9OT05FOwogfQogCi1Db250YWluZXJOb2RlKiBQb3NpdGlv
bjo6ZmluZFBhcmVudChjb25zdCBOb2RlKiBub2RlKQorQ29udGFpbmVyTm9kZSogUG9zaXRpb246
OmZpbmRQYXJlbnQoY29uc3QgTm9kZSYgbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+bm9uU2hh
ZG93Qm91bmRhcnlQYXJlbnROb2RlKCk7CisgICAgcmV0dXJuIG5vZGUubm9uU2hhZG93Qm91bmRh
cnlQYXJlbnROb2RlKCk7CiB9CiAKICNpZiBFTkFCTEUoVVNFUlNFTEVDVF9BTEwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IGNiMzVlMjJlNTE0MTNiMWM4ZTg0NzU4ZDMxOWViNzBhNGYyNzgxOTEu
LjBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC0xOTgsNyArMTk4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIG5vZGVJ
c1VzZXJTZWxlY3RBbGwoY29uc3QgTm9kZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgc3RhdGlj
IE5vZGUqIHJvb3RVc2VyU2VsZWN0QWxsRm9yTm9kZShOb2RlKikgeyByZXR1cm4gMDsgfQogI2Vu
ZGlmCi0gICAgc3RhdGljIENvbnRhaW5lck5vZGUqIGZpbmRQYXJlbnQoY29uc3QgTm9kZSopOwor
ICAgIHN0YXRpYyBDb250YWluZXJOb2RlKiBmaW5kUGFyZW50KGNvbnN0IE5vZGUmKTsKICAgICAK
ICAgICB2b2lkIGRlYnVnUG9zaXRpb24oY29uc3QgY2hhciogbXNnID0gIiIpIGNvbnN0OwogCg==
</data>
<flag name="review"
          id="279999"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>