From d408b3638924bbacc018f75bfb9d9ba0589341ff Mon Sep 17 00:00:00 2001 From: herbert Date: Mon, 28 Feb 2005 21:14:16 +1100 Subject: Update funcnest atomically. --- ChangeLog | 1 + src/eval.c | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a2c06ad..35bcdda 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2005-02-28 Herbert Xu * Replaced EXEVAL with SKIPEVAL. + * Update funcnest atomically. 2005-02-28 A Costa diff --git a/src/eval.c b/src/eval.c index 3288837..e833882 100644 --- a/src/eval.c +++ b/src/eval.c @@ -87,7 +87,7 @@ __RCSID("$NetBSD: eval.c,v 1.71 2003/01/23 03:33:16 rafal Exp $"); int evalskip; /* set if we are skipping commands */ STATIC int skipcount; /* number of levels to skip */ MKINIT int loopnest; /* current loop nesting level */ -int funcnest; /* depth of function calls */ +static int funcnest; /* depth of function calls */ char *commandname; @@ -134,7 +134,6 @@ INCLUDE "eval.h" RESET { evalskip = 0; loopnest = 0; - funcnest = 0; } #endif @@ -958,16 +957,16 @@ evalfun(struct funcnode *func, int argc, char **argv, int flags) localvars = NULL; shellparam.malloc = 0; func->count++; + funcnest++; INTON; shellparam.nparam = argc - 1; shellparam.p = argv + 1; shellparam.optind = 1; shellparam.optoff = -1; - funcnest++; evaltree(&func->n, flags & EV_TESTED); - funcnest--; funcdone: INTOFF; + funcnest--; freefunc(func); poplocalvars(); localvars = savelocalvars; -- cgit 1.4.1