On Jan 6, 2010, at 10:46 AM, Chris Fleizach wrote:
> I see a lot of code that calls the same function a number of times in the
> same scope.
>
> Is it better to store that result in a local variable, or is it better to
> repeatedly call a method...
>
> in this example, node() is called two times
>
> return !m_renderer->node() || !m_renderer->node()->isContentEditable();
>
> Would it better to write it as
>
> Node* node = m_renderer->node();
> return !node || !node->isContentEditable();
Some advantages to using a local variable:
1) If the function is a non-trivial function, this can be faster.
2) Name of local variable can be helpful for additional documentation.
Some advantages to calling a function twice:
1) In cases where the function is a trivial inline function, this can be
slightly faster. Saves allocating a slot on the stack to store the variable.
2) No need to name the local variable. Can avoid confusion by not having a
name.
3) Eliminates the danger the local variable could be holding a stale
pointer or other stale value.
I lean heavily in the “use a local variable” direction almost all the time, but
Maciej has pushed me in the other direction in the past.
-- Darin
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev