[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl5-porters
Subject:    Re: [perl #72108] gv_e?fullname[34] improvement
From:       Tony Cook <tony () develop-help ! com>
Date:       2010-05-30 23:41:48
Message-ID: 20100530234148.GA20300 () mars ! tony ! develop-help ! com
[Download RAW message or body]

On Sun, May 30, 2010 at 02:19:11PM +0100, Nicholas Clark wrote:
> On Mon, Jan 18, 2010 at 10:29:00AM +1100, Tony Cook wrote:
> > On Fri, Jan 15, 2010 at 08:46:43AM -0800, Nicholas Clark wrote:
> 
> > > It seems that a fairly common pairing in the perl source is:
> > > 
> > > 	    tmpsv = newSV(0);
> > > 	    gv_efullname3(tmpsv, gv, NULL);
> > > 
> > > or generating a new mortal and passing it in.
> > > 
> > > All functions in the gv_e?fullname{,3,4} family are ultimately wrappers
> > > around gv_fullname4(), which currently returns void, and takes a not NULL
> > > first argument.
> > > 
> > > It would probably reduce the core's code size to change it to return SV *,
> > > and generate a new SV (possibly mortal) if the first argument is NULL.
> > 
> > Instead of overloading the interface, wouldn't it be better to add
> > extra functions that create the GV, and then calls gv_e?fullname4().
> > 
> > The new functions could be marked with the R flag to make sure the
> > returned new GV isn't ignored.
> 
> That's a good point.
> 
> Do you have any suggestions for a name? [in 32 or fewer ASCII characters :-)]

Maybe:

  gv_new_e?fullname{,3,4}

though it sort of implies creating a new GV.  Otherwise:

  gv_e?fullname_new_sv{,3,4}

Tony
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic