<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Nov 29, 2011, at 6:44 PM, Ryosuke Niwa wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Tue, Nov 29, 2011 at 6:42 PM, Ryosuke Niwa <span dir="ltr"><<a href="mailto:rniwa@webkit.org">rniwa@webkit.org</a>></span> wrote: <blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">

<div class="gmail_quote"><div class="im">
<blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div style="word-wrap:break-word"><div><blockquote type="cite"><div style="word-wrap:break-word"><div>  - Prevents misuse of variable in a later patch (by a different author) through enforcement of const-ness.</div>


</div></blockquote><div><br></div><div>Prevents one specific type of misuse: Setting the variable to another value. And that may not be misuse despite the fact that the original author didnít plan on changing it.</div></div>


</div></blockquote><div><br></div></div><div>Right, but it tells us the intent of the author, and appears to be useful even if the variable started with prefixes like "old", "original", and "previous".</div>

</div></blockquote><div><br></div><div>I'll add that I'd much prefer seeing a const in front of a local variable over seeing a comment like "This variable shouldn't be modified".</div></div></blockquote></div><div><br></div><div>Thanks for the feedback everyone.  In retrospect, I see that my original question was too broad and too general.</div><div><br></div><div>What I (and Antti) really wanted to ask was whether it's okay to use const pointers on a case-by-case basis without making it a project-wide rule.</div><div><br></div><div>And this is the specific case I'm talking about:</div><div><br></div><div><div><font class="Apple-style-span" face="Menlo">diff --git a/Source/WebCore/platform/KURL.cpp b/Source/WebCore/platform/KURL.cpp</font></div><div><font class="Apple-style-span" face="Menlo">index e752bb8..cb033bd 100644</font></div><div><font class="Apple-style-span" face="Menlo">--- a/Source/WebCore/platform/KURL.cpp</font></div><div><font class="Apple-style-span" face="Menlo">+++ b/Source/WebCore/platform/KURL.cpp</font></div><div><div><font class="Apple-style-span" face="Menlo">@@ -486,7 +486,7 @@ void KURL::init(const KURL& base, const String& relative, const TextEncoding& en</font></div><div><font class="Apple-style-span" face="Menlo">                 parseBuffer.resize(bufferSize);</font></div><div><font class="Apple-style-span" face="Menlo"> </font></div><div><font class="Apple-style-span" face="Menlo">                 char* bufferPos = parseBuffer.data();</font></div><div><font class="Apple-style-span" face="Menlo">-                char* bufferStart = bufferPos;</font></div><div><font class="Apple-style-span" face="Menlo">+                char* const bufferStart = bufferPos;</font></div><div><font class="Apple-style-span" face="Menlo"> </font></div><div><font class="Apple-style-span" face="Menlo">                 // first copy everything before the path from the base</font></div><div><font class="Apple-style-span" face="Menlo">                 unsigned baseLength = base.m_string.length();</font></div><div><font class="Apple-style-span" face="Menlo"><br></font></div></div></div><div>But of course I couldn't stop there because there were other pointers that could be const in this method, so I ended up with:</div><div><br></div><div><div><a href="https://bugs.webkit.org/show_bug.cgi?id=73502">https://bugs.webkit.org/show_bug.cgi?id=73502</a></div></div><div><br></div><div>Dave</div><div><br></div></body></html>