1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

Remove unnecessary sh.defpathlist variable (re: e3a1dda9) (#461)

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:
Johnothan King 2022-02-12 20:25:12 -08:00 committed by Martijn Dekker
parent 4886463bb6
commit 5bd18322e0
2 changed files with 6 additions and 19 deletions

View file

@ -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} */

View file

@ -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);