Avoid unnecessary arguments copying inside GenericHashTraits methods
Avoid unnecessary arguments copying inside GenericHashTraits methods

Before the change both WTF::GenericHashTraits::passOut and WTF::GenericHashTraits::passOut
used to return the given argument always by value and that caused implicit extra
copying of the argument. It was OK as long as argument type T was POD, as compiler
could optimize it, but in case T was a class having non-trivial copy constructor the
extra copying of the argument could not have been obviated.

The proposed solution is to provide overloaded functions that accept non-temporary
values and return them by reference thus avoiding extra copying.

Review URL: https://chromiumcodereview.appspot.com/14786023

git-svn-id: bf5cd6ccde378db821296732a091cfbcf5285fbd@149975 bbb929c8-8fbe-4397-9dbb-9b2b20218538

smishenk/blink-crosswalk,kurli/blink-crosswalk,Pluto-tv/blink-crosswalk,ondra-novak/blink,ondra-novak/blink,Pluto-tv/blink-crosswalk,jtg-gg/blink,Pluto-tv/blink-crosswalk,modulexcite/blink,Bysmyyr/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,XiaosongWei/blink-crosswalk,Bysmyyr/blink-crosswalk,jtg-gg/blink,kurli/blink-crosswalk,hgl888/blink-crosswalk-efl,modulexcite/blink,smishenk/blink-crosswalk,XiaosongWei/blink-crosswalk,nwjs/blink,crosswalk-project/blink-crosswalk-efl,smishenk/blink-crosswalk,Bysmyyr/blink-crosswalk,modulexcite/blink,smishenk/blink-crosswalk,PeterWangIntel/blink-crosswalk,nwjs/blink,jtg-gg/blink,Pluto-tv/blink-crosswalk,hgl888/blink-crosswalk-efl,crosswalk-project/blink-crosswalk-efl,modulexcite/blink,nwjs/blink,ondra-novak/blink,kurli/blink-crosswalk,nwjs/blink,nwjs/blink,Bysmyyr/blink-crosswalk,XiaosongWei/blink-crosswalk,Pluto-tv/blink-crosswalk,modulexcite/blink,ondra-novak/blink,modulexcite/blink,PeterWangIntel/blink-crosswalk,jtg-gg/blink,XiaosongWei/blink-crosswalk,XiaosongWei/blink-crosswalk,nwjs/blink,Pluto-tv/blink-crosswalk,hgl888/blink-crosswalk-efl,jtg-gg/blink,Pluto-tv/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,jtg-gg/blink,Bysmyyr/blink-crosswalk,kurli/blink-crosswalk,modulexcite/blink,ondra-novak/blink,smishenk/blink-crosswalk,hgl888/blink-crosswalk-efl,crosswalk-project/blink-crosswalk-efl,nwjs/blink,hgl888/blink-crosswalk-efl,modulexcite/blink,ondra-novak/blink,PeterWangIntel/blink-crosswalk,PeterWangIntel/blink-crosswalk,smishenk/blink-crosswalk,XiaosongWei/blink-crosswalk,nwjs/blink,smishenk/blink-crosswalk,kurli/blink-crosswalk,XiaosongWei/blink-crosswalk,Pluto-tv/blink-crosswalk,Pluto-tv/blink-crosswalk,smishenk/blink-crosswalk,kurli/blink-crosswalk,kurli/blink-crosswalk,ondra-novak/blink,Bysmyyr/blink-crosswalk,jtg-gg/blink,nwjs/blink,smishenk/blink-crosswalk,jtg-gg/blink,PeterWangIntel/blink-crosswalk,hgl888/blink-crosswalk-efl,modulexcite/blink,PeterWangIntel/blink-crosswalk,hgl888/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,jtg-gg/blink,hgl888/blink-crosswalk-efl,crosswalk-project/blink-crosswalk-efl,Pluto-tv/blink-crosswalk,PeterWangIntel/blink-crosswalk,ondra-novak/blink,XiaosongWei/blink-crosswalk,Bysmyyr/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,PeterWangIntel/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,XiaosongWei/blink-crosswalk,Bysmyyr/blink-crosswalk,jtg-gg/blink,kurli/blink-crosswalk,PeterWangIntel/blink-crosswalk,nwjs/blink,kurli/blink-crosswalk,modulexcite/blink,smishenk/blink-crosswalk,kurli/blink-crosswalk,ondra-novak/blink,PeterWangIntel/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,XiaosongWei/blink-crosswalk,Bysmyyr/blink-crosswalk,Bysmyyr/blink-crosswalk