The passing of InetAddr by value is intentional. The InetAddr structure is so small that we (I) deemed it better from a performance standpoint to pass by value instead of take the hit of an extra level of indirection introduce with a reference.
On Sun, Apr 4, 2010 at 11:47 AM, conferno <[email protected]> wrote: > Doug, > > if you take care of performance hit of object copying, the rule "Use > the C++ keyword explicit for constructors with one argument." would be > your friend as well. > > There are a lot of places where objects are constructed implicitly. > For example, CommAddress out of InetAddr. > > 2010/4/4, Doug Judd <[email protected]>: > > Hi Conferno, > > > > I agree that this is probably a good rule that we should start adopting. > I > > can think of another serious performance bug that was introduced in the > past > > due to inadvertently making a copy of an object. I cringe at the thought > of > > sweeping through the entire code base and adding that macro to every > class. > > Maybe we can start with some of the big ones (RangeServer, Range, > > AccessGroup, CellStore, etc.) and then slowly introduce it to other > classes > > over time. I just filed issue 434 ( > > http://code.google.com/p/hypertable/issues/detail?id=434) for this one. > > Thanks. > > > > - Doug > > > > P.S. I don't particularly believe in the 80 column rule. With C++, 80 > > columns is inadequate. It may be a little more doable with C or other > terse > > languages, but with namespaces, nested namespaces, nested classes, etc. > 80 > > columns is unreasonably small. Especially given Google's rule of not > > allowing the 'using' keyword. I do try to keep lines under 80 columns, > but > > if the only way to keep the line under 80 columns is to make it look > really > > ugly, then I'll break the rule. > > > > On Fri, Apr 2, 2010 at 9:21 PM, conferno <[email protected]> wrote: > > > >> Hi > >> > >> I have seen that you took something from <a > >> href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml > >> ">Google > >> C++ Style Guide</a>: > >> two-spaces indentation, 80 char line limit, no spaces inside > >> parentheses, define guards in headers, using namespaces, ... > >> > >> What do you thing to take more rules from that document ? > >> > >> They have right ideas, and also automatic checking tools. > >> > >> For example <a href=" > >> > http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Copy_Constructors#Copy_Constructors > >> ">the > >> rule about copy constructors</a> could prevent issue 422. > >> > >> -- > >> You received this message because you are subscribed to the Google > Groups > >> "Hypertable Development" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<hypertable-dev%[email protected]> > <hypertable-dev%[email protected]<hypertable-dev%[email protected]> > > > >> . > >> For more options, visit this group at > >> http://groups.google.com/group/hypertable-dev?hl=en. > >> > >> > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Hypertable Development" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<hypertable-dev%[email protected]> > . > > For more options, visit this group at > > http://groups.google.com/group/hypertable-dev?hl=en. > > > > > > -- > You received this message because you are subscribed to the Google Groups > "Hypertable Development" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<hypertable-dev%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/hypertable-dev?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Hypertable Development" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/hypertable-dev?hl=en.
