[webkit-dev] Using C++ constant local variables in WebKit

David Kilzer ddkilzer at webkit.org
Wed Nov 30 17:00:48 PST 2011


On Nov 29, 2011, at 6:44 PM, Ryosuke Niwa wrote:

> On Tue, Nov 29, 2011 at 6:42 PM, Ryosuke Niwa <rniwa at webkit.org> wrote: 
>>   - Prevents misuse of variable in a later patch (by a different author) through enforcement of const-ness.
> 
> 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.
> 
> 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".
> 
> 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".


Thanks for the feedback everyone.  In retrospect, I see that my original question was too broad and too general.

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.

And this is the specific case I'm talking about:

diff --git a/Source/WebCore/platform/KURL.cpp b/Source/WebCore/platform/KURL.cpp
index e752bb8..cb033bd 100644
--- a/Source/WebCore/platform/KURL.cpp
+++ b/Source/WebCore/platform/KURL.cpp
@@ -486,7 +486,7 @@ void KURL::init(const KURL& base, const String& relative, const TextEncoding& en
                 parseBuffer.resize(bufferSize);
 
                 char* bufferPos = parseBuffer.data();
-                char* bufferStart = bufferPos;
+                char* const bufferStart = bufferPos;
 
                 // first copy everything before the path from the base
                 unsigned baseLength = base.m_string.length();

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:

https://bugs.webkit.org/show_bug.cgi?id=73502

Dave

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20111130/d917be3e/attachment.html>


More information about the webkit-dev mailing list