HEADS DOWN

Andrey Chernov ache at freebsd.org
Fri May 4 22:26:43 UTC 2007


On Sat, May 05, 2007 at 01:33:12AM +0400, Andrey Chernov wrote:
> On Fri, May 04, 2007 at 01:21:50PM -0500, Sean C. Farley wrote:
> >  I believe I check all that you did in your changes.  Mine looks a little
> >  different since some checks were combined for speed (i.e.,
> >  __strleneq()).
> 
> Looking at 
> http://www.farley.org/freebsd/tmp/setenv-8/POSIX/sysenv.c

It seems 
putenv("a=b");
...
putenv("a=c");
can be optimized a bit more.

Currently you always realloc and rebuild_environ on any putenv call.
But 
envVars[envNdx].active = false;
if (envVars[envNdx].putenv)
	__remove_putenv(envNdx);

in putenv() can be just changed to:

if (envVars[envNdx].putenv) {
	envVars[envNdx].name = string;
	return (0);
}
envVars[envNdx].active = false;

(unless I not miss something).

-- 
http://ache.pp.ru/


More information about the freebsd-arch mailing list