<br><br><div class="gmail_quote">On Mon, Jun 20, 2011 at 6:11 PM, Alexey Proskuryakov <span dir="ltr"><<a href="mailto:ap@webkit.org">ap@webkit.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
20.06.2011, в 17:25, Maciej Stachowiak написал(а):<br>
<div class="im"><br>
>> Yet it's the latter where PassRefPtr is beneficial. Why base the rule on something that's disconnected from actual benefit?<br>
><br>
> Because it's simpler to read the source of your own function than to visit all call sites, and it's more obvious that when you change what the function does you may need to change the signature.<br>
<br>
</div>I do not see how you are describing a practical coding situation here. I do not start with a dozen call sites all over the code base, and then write a function they all call. On the other hand, when adding a new call site that wants to pass ownership away, and the called function doesn't take a PassRefPtr, it's immediately obvious that it's not going to work.<br>


<br>
Even when following a cargo cult rule is easier (not uncommon!), the problem of it being disconnected from the actual benefit still remains.<br></blockquote><div><br></div><div>Here's a few benefits:</div><div>1. It makes the code more self-documenting. It clearly indicates that this function intends to take a reference to the item.</div>

<div>2. It is consistent with the rules for PassOwnPtr. It is nice to have one set of things in mind that are consistent.</div><div>3. Just like one shouldn't document a function based on who calls it because that may change, it makes sense to base the argument types on the how the function uses them not on the callers.</div>

<div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- WBR, Alexey Proskuryakov<br>
<div><div></div><div class="h5"><br>
_______________________________________________<br>
webkit-dev mailing list<br>
<a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a><br>
<a href="http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev" target="_blank">http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev</a><br>
</div></div></blockquote></div><br>