Style guide should mandate use of pass-by-reference for out arguments
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Oct 2011 18:12:28 +0000 (18:12 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Oct 2011 18:12:28 +0000 (18:12 +0000)
https://bugs.webkit.org/show_bug.cgi?id=69766

Reviewed by Darin Adler.

This matches the convention used throughout WebCore.

* coding/coding-style.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@97070 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/webkit.org/ChangeLog
Websites/webkit.org/coding/coding-style.html

index a7e594f0c0803482c1abdfce0e0655fbfd89476d..8fc1a052e271b57d226933560d25bf6fe7971000 100644 (file)
@@ -1,3 +1,14 @@
+2011-10-10  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Style guide should mandate use of pass-by-reference for out arguments
+        https://bugs.webkit.org/show_bug.cgi?id=69766
+
+        Reviewed by Darin Adler.
+
+        This matches the convention used throughout WebCore.
+
+        * coding/coding-style.html:
+
 2011-10-06  Amruth Raj  <amruthraj@motorola.com>
 
         Add Motorola Mobility to team.html
index 4197c7861d65d4adc45ff410a3486c2cb6e56d61..93f419a11716467f033e9a70bd40e52ab249ebfe 100644 (file)
@@ -575,6 +575,17 @@ size_t getCount();
 </pre>
 </li>
 
+<li>Precede getters that return values through out arguments with the word "get".</li>
+<h4 class="right">Right:</h4>
+<pre class="code">
+void getInlineBoxAndOffset(InlineBox*&amp;, int&amp; caretOffset) const;
+</pre>
+
+<h4 class="wrong">Wrong:</h4>
+<pre class="code">
+void inlineBoxAndOffset(InlineBox*&amp;, int&amp; caretOffset) const;
+</pre>
+
 <li>Use descriptive verbs in function names.
 <h4 class="right">Right:</h4>
 <pre class="code">
@@ -697,6 +708,11 @@ MyClass::MyClass(Document* doc) : MySuperClass()
 
 MyOtherClass::MyOtherClass() : MySuperClass() {}
 </pre>
+</ol>
+
+<h3>Pointers and References</h3>
+
+<ol>
 
 <li>Pointer types in non-C++ code &mdash; Pointer types should be written with a space between the
 type and the * (so the * is adjacent to the following identifier if any).
@@ -720,6 +736,32 @@ Image *SVGStyledElement::doSomething(PaintInfo &amp;paintInfo)
     const KCDashArray &amp;dashes = dashArray();
 </pre>
 
+<li>An out argument of a function should be passed by reference except rare cases where
+it is optional in which case it should be passed by pointer.
+
+<h4 class="right">Right:</h4>
+<pre class="code">
+void MyClass::getSomeValue(OutArgumentType&amp; outArgument) const
+{
+    outArgument = m_value;
+}
+
+void MyClass::doSomething(OutArgumentType* outArgument) const
+{
+    doSomething();
+    if (outArgument)
+        outArgument = m_value;
+}
+</pre>
+
+<h4 class="wrong">Wrong:</h4>
+<pre class="code">
+void MyClass::getSomeValue(OutArgumentType* outArgument) const
+{
+    *outArgument = m_value;
+}
+</pre>
+
 </ol>
 
 <h3>#include Statements</h3>