Thread

  1. VacAttrStatsP vs VacAttrStats * (typedef'ing pointer types)

    Jan Urbański <j.urbanski@students.mimuw.edu.pl> — 2008-05-02T21:22:55Z

    While looking around vacuum.h (for my GSoC project) I found:
    typedef struct VacAttrStats *VacAttrStatsP;
    and then throughout the code sometimes VacAttrStats *foo is used and 
    sometimes VacAttrStatsP bar is used.
    
    Call this obsessive-compulsive disorder, but it kind of bothers me. Is 
    there a reason for using both notations? If not, then which one is 
    preferred and should I write a patch for it or should I just take a pill 
    or two and focus on important things?
    
    Regards,
    Jan
    -- 
    Jan Urbanski
    GPG key ID: E583D7D2
    
    ouden estin
    
    
  2. Re: VacAttrStatsP vs VacAttrStats * (typedef'ing pointer types)

    Neil Conway <neilc@samurai.com> — 2008-05-02T21:53:01Z

    On Fri, 2008-05-02 at 23:22 +0200, Jan Urbański wrote:
    > While looking around vacuum.h (for my GSoC project) I found:
    > typedef struct VacAttrStats *VacAttrStatsP;
    > and then throughout the code sometimes VacAttrStats *foo is used and 
    > sometimes VacAttrStatsP bar is used.
    
    Personally I think we should be consistent about this and just use one
    form for a given type.
    
    (I don't really care which variant is preferred. Personally, I think
    that hiding pointer types inside a typedef is evil and wrong, but it is
    relatively common practice in the source...)
    
    -Neil
    
    
    
    
  3. Re: VacAttrStatsP vs VacAttrStats * (typedef'ing pointer types)

    Tom Lane <tgl@sss.pgh.pa.us> — 2008-05-02T21:53:31Z

    =?UTF-8?B?SmFuIFVyYmHFhHNraQ==?= <j.urbanski@students.mimuw.edu.pl> writes:
    > While looking around vacuum.h (for my GSoC project) I found:
    > typedef struct VacAttrStats *VacAttrStatsP;
    > and then throughout the code sometimes VacAttrStats *foo is used and 
    > sometimes VacAttrStatsP bar is used.
    
    > Call this obsessive-compulsive disorder, but it kind of bothers me. Is 
    > there a reason for using both notations? If not, then which one is 
    > preferred and should I write a patch for it or should I just take a pill 
    > or two and focus on important things?
    
    Hmm.  We have a fairly widespread convention that pointers to structs
    can be separately typedef'd as Foo where the underlying struct is
    typedef FooData.  This isn't following that naming convention though,
    and right offhand "FooP" doesn't seem an improvement over "Foo *".
    
    I also notice that there are many more uses of VacAttrStats * than
    VacAttrStatsP, so the collective vote about which notation is clearer
    seems already taken.
    
    If it bugs you, I'd suggest getting rid of typedef VacAttrStatsP
    altogether and using VacAttrStats * everywhere.  It's surely not
    too important though...
    
    			regards, tom lane