On Tue, Feb 05, 2013 at 03:23:44AM +1100, Bruce Evans wrote:
B> On Mon, 4 Feb 2013, Gleb Smirnoff wrote:
B> 
B> >   any additional comments for the attached patch. Is it ok from your
B> > viewpoint?
B> 
B> > Index: queue.h
B> > ===================================================================
B> > --- queue.h        (revision 245741)
B> > +++ queue.h        (working copy)
B> > @@ -105,13 +105,14 @@
B> >  #ifdef QUEUE_MACRO_DEBUG
B> >  /* Store the last 2 places the queue element or head was altered */
B> >  struct qm_trace {
B> > -  char * lastfile;
B> > -  int lastline;
B> > -  char * prevfile;
B> > -  int prevline;
B> > +  const char * lastfile;
B> > +  unsigned long lastline;
B> > +  const char * prevfile;
B> > +  unsigned long prevline;
B> >  };
B> 
B> Unsigned long is unnecessarily large.  It wastes space on 64-bit
B> arches.  The change doesn't change the wastage, because space was
B> already wasted on 64-bit arches by mispacking the struct (with
B> unnamed padding after the ints).  It changes the API unnecessarily
B> by changing signed variables to unsigned.  Sign variables are
B> easier to use, and changing to unsigned ones risks sign extension
B> bugs.
B> 
B> According to your quote of the C standard, int32_t is enough.  (I
B> couldn't find anything directly about either the type or limit of
B> __LINE__ in the n869.txt draft of C99, but #line is limited to 2**31-1.
B> n1124.pdf says much the same, except it says that __LINE__ is an integer
B> constant where n869.txt says that __LINE__ is a decimal constant.  Both
B> of these seem to be wrong -- "decimal constants" include floating point
B> ones, and "integer constants" include octal and hex ones.)

As Andrey pointed out, int may be smaller than 2**31-1, that's why longs
are used.

I know that you prefer signed variables since they are easier to use,
but I prefer to explictily use unsigned in places where value can not
go below zero by its definition.

B> The change preserves many style bugs:
B> - no prefix in member names
B> - member names not sorted inversely on size.  This gives the space
B>    wastage.
B> - member names not indented
B> - space between '*' and member names.

Taken into account, thanks.

-- 
Totus tuus, Glebius.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to