mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
src/cmd/ksh93/{sh/path.c,include/shell.h}: - The sh.defpathlist variable is never set once, which makes every use of this variable unnecessary (as it's always null). This commit removes sh.defpathlist while also fixing a possible memory leak (there was another location where defpathinit() was invoked without saving the returned pointer, causing a memory leak).
This commit is contained in:
parent
4886463bb6
commit
5bd18322e0
2 changed files with 6 additions and 19 deletions
|
@ -349,7 +349,6 @@ struct Shell_s
|
|||
void *lex_context;
|
||||
void *arg_context;
|
||||
void *pathlist;
|
||||
void *defpathlist;
|
||||
void *cdpathlist;
|
||||
char **argaddr;
|
||||
char cond_expan; /* set while processing ${var=val}, ${var:=val}, ${var?err}, ${var:?err} */
|
||||
|
|
|
@ -381,8 +381,7 @@ static void pathinit(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if(!(pp=(Pathcomp_t*)sh.defpathlist))
|
||||
pp = defpathinit();
|
||||
pp = defpathinit();
|
||||
sh.pathlist = (void*)path_dup(pp);
|
||||
}
|
||||
if(val=sh_scoped((FPATHNOD))->nvalue.cp)
|
||||
|
@ -407,8 +406,7 @@ Pathcomp_t *path_get(const char *name)
|
|||
}
|
||||
if(!pp && (!(sh_scoped(PATHNOD)->nvalue.cp)) || sh_isstate(SH_DEFPATH))
|
||||
{
|
||||
if(!(pp=(Pathcomp_t*)sh.defpathlist))
|
||||
pp = defpathinit();
|
||||
pp = defpathinit();
|
||||
}
|
||||
return(pp);
|
||||
}
|
||||
|
@ -630,12 +628,7 @@ int path_search(register const char *name,Pathcomp_t **oldpp, int flag)
|
|||
stakputc(0);
|
||||
return(0);
|
||||
}
|
||||
if(sh_isstate(SH_DEFPATH))
|
||||
{
|
||||
if(!sh.defpathlist)
|
||||
defpathinit();
|
||||
}
|
||||
else if(!sh.pathlist)
|
||||
if(!sh_isstate(SH_DEFPATH) && !sh.pathlist)
|
||||
pathinit();
|
||||
if(flag)
|
||||
{
|
||||
|
@ -663,8 +656,8 @@ int path_search(register const char *name,Pathcomp_t **oldpp, int flag)
|
|||
}
|
||||
if(flag==0 || !pp || (pp->flags&PATH_FPATH))
|
||||
{
|
||||
if(!pp)
|
||||
pp=sh_isstate(SH_DEFPATH)?sh.defpathlist:sh.pathlist;
|
||||
if(!pp && !sh_isstate(SH_DEFPATH))
|
||||
pp = sh.pathlist;
|
||||
if(pp && strlen(name)<256 && strmatch(name,e_alphanum) && (fno=opentype(name,pp,1))>=0)
|
||||
{
|
||||
if(flag >= 2)
|
||||
|
@ -1635,12 +1628,7 @@ Pathcomp_t *path_addpath(Pathcomp_t *first, register const char *path,int type)
|
|||
if(old)
|
||||
{
|
||||
if(!first && !path)
|
||||
{
|
||||
Pathcomp_t *pp = (Pathcomp_t*)sh.defpathlist;
|
||||
if(!pp)
|
||||
pp = defpathinit();
|
||||
first = path_dup(pp);
|
||||
}
|
||||
first = path_dup(defpathinit());
|
||||
if(cp=(sh_scoped(FPATHNOD))->nvalue.cp)
|
||||
first = (void*)path_addpath((Pathcomp_t*)first,cp,PATH_FPATH);
|
||||
path_delete(old);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue