<div class="gmail_quote">On Thu, Jun 2, 2011 at 12:38 AM, Maciej Stachowiak <span dir="ltr"><<a href="mailto:mjs@apple.com">mjs@apple.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div style="word-wrap:break-word"><div>Looks to me like these fulfill the requirement of "do we ever use const pointers to these objects". So the next step is to fix up const member functions that inappropriately return non-const pointers to objects in the same tree (or that can otherwise get a back pointer). Make the functions non-const, then add const variants returning a const pointer if needed.</div>

<div><br></div><div>I'm curious if there are any clients for const pointers to DOM nodes.</div></div></blockquote><div><br></div><div>All functions passed to <font class="Apple-style-span" face="'courier new', monospace">enclosingNodeOfType</font> in htmlediting.cpp are such clients:</div>

<div><br></div><div><meta charset="utf-8"><span class="Apple-style-span" style="border-collapse: collapse; "><font class="Apple-style-span" face="'courier new', monospace">Node<span class="o" style="color: rgb(102, 102, 102); ">*</span> enclosingNodeOfType<span class="p">(</span><span class="k" style="color: rgb(0, 128, 0); font-weight: bold; ">const</span> Position<span class="o" style="color: rgb(102, 102, 102); ">&</span> p<span class="p">,</span> <span class="kt" style="color: rgb(176, 0, 64); ">bool</span> <span class="p">(</span><span class="o" style="color: rgb(102, 102, 102); ">*</span>nodeIsOfType<span class="p">)(</span><span class="k" style="color: rgb(0, 128, 0); font-weight: bold; ">const</span> Node<span class="o" style="color: rgb(102, 102, 102); ">*</span><span class="p">),</span> EditingBoundaryCrossingRule rule<span class="p">)</span></font></span></div>

<div><br></div><div>It takes a boolean function that takes const pointer to a DOM node.  It is <b><i>critical </i></b>that <font class="Apple-style-span" face="'courier new', monospace">nodeIsOfType</font> does not modify DOM because we use a raw pointer to keep track of the current node when walking up the tree.</div>

<div><br></div><div>- Ryosuke</div><div><br></div></div>