The only way for this change to actually solve the problem rather than simply move it, would be if executeNewlineMacro() or executeModMacro() could be re-entered before the arg copy in ExecuteMacro(). Another possibility is if some of the fields were conditionally set and other times left to their "once only" initialized values. I don't see how this is possible. When you can tell me how this is possible, I will believe that this actually fixes the problem, rather than simply hiding it.
To me, it sounds like we need to find this bug before we submarine it. -Steve -- Steve LoBasso mailto:[EMAIL PROTECTED] http://slobasso.tripod.com/ ----- Original Message ---- From: Bert Wesarg <[EMAIL PROTECTED]> To: NEdit development list <[email protected]> Sent: Monday, March 10, 2008 10:16:40 AM Subject: Re: smartIndent.c: remove static On Mon, Mar 10, 2008 at 6:12 PM, Steve LoBasso <[EMAIL PROTECTED]> wrote: > I done an analysis of the code. > > In both cases the static variable is used as an argument to ExecuteMacro(). > ExecuteMacro() then proceeds to immediately copy the values. > > I came to the following conclusions: > > Because the values are not used past the beginning of ExecuteMacro() and > none of the fields are conditionally set, so the static one time > initialization is not a problem. > This tells me that as the code stands right now it is safe. Have you tried this: http://www.nedit.org/pipermail/develop/2008-January/014029.html Bert > > The variables being static was probably written as a speed optimization and > nothing more. > > The current state is fragile but stable. Meaning that it will survive minor > maintenance but is a potential land mine to any major code manipulation at a > later date. > > Removing the static would be safe. > > -Steve > > -- > Steve LoBasso > mailto:[EMAIL PROTECTED] > http://slobasso.tripod.com/ > > > ----- Original Message ---- > From: Scott Tringali <[EMAIL PROTECTED]> > To: NEdit development list <[email protected]> > Sent: Monday, March 10, 2008 8:27:02 AM > Subject: Re: smartIndent.c: remove static > > Thorsten Haude wrote: > > > The question is of course why they are static in the first place. > > I don't know a whole lot about the macro interpreter, but... > > If simply removing static was the right thing to do, the author or > commenter probably would have done it. There is probably a reason it's > there. Passing off a local variable to another routine, which may store > the value and use it later isn't a good idea. > > Probably, it needs to be dynamically allocated and properly managed. > That's the way I read it that comment. > > -- > NEdit Develop mailing list - [email protected] > http://www.nedit.org/mailman/listinfo/develop > > > > > > > > ____________________________________________________________________________________ > Looking for last minute shopping deals? > Find them fast with Yahoo! Search. > http://tools.search.yahoo.com/newsearch/category.php?category=shopping > > > -- > NEdit Develop mailing list - [email protected] > http://www.nedit.org/mailman/listinfo/develop > -- NEdit Develop mailing list - [email protected] http://www.nedit.org/mailman/listinfo/develop ____________________________________________________________________________________ Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping -- NEdit Develop mailing list - [email protected] http://www.nedit.org/mailman/listinfo/develop
