On Wed, 26 Aug 2009 15:09:44 +1000, Lex wrote:
2009/8/26 Enrico Tröger enrico.troeger@uvena.de:
On Tue, 25 Aug 2009 14:35:54 +1000, Lex wrote:
Hi All,
The configurable build system has been merged into the latest trunk (>r4120).
And crashes Geany at startup under some circumstances :(.
I happily updated my Geany at work this morning and once I started it, it crashed. http://nopaste.geany.org/p/m5ab611f0 has a short backtrace. Though I didn't manage to find the cause of this crash but I also hadn't much time to look into it.
I zipped my .config/geany directory and tried to reproduce here at home but with no luck. So, I guess it might be related to the project I had opened, unfortunately I didn't copy the project file.
Well, I'll try to debug this a bit more tomorrow.
Lex, maybe you already have an idea what's wrong? I wonder what's about the variable i in the outer for loop, is it initialised at all?
No its not initialised, but it shouldn't be a variable i, S/B 1, see attached patch. Removes the now unused variable too.
Additionally, I noticed the FOREACH_GEANYBUILDCMD_ENTRY () macro which, erm, looks weird. It defines an usual for loop which also uses a variable i. From my experience, I'd say such things can easily lead to weird errors and makes the code less readable.
The decision on macro or not is between you and Thomas, as a C++ programmer I lean towards the "macros are evil" (but occasionally necessary) approach.
I would like to remove the macro as I really don't see how it helps. If there are no objections (except from Thomas which I expect :), I will remove the macro soon.
Additionally, while searching for uses of this macro, I found several lines which were indented with spaces instead of tabs. That's not critical at all, just want to mention it. I guess this came by Thomas's patch. But it's easily fixable, so no big deal.
If the macro stays I suggest that the uses of the argument in the macro body be enclosed in (), this is a standard way to reduce problems in case arguments are expressions.
Yes, this is the very least.
Regards, Enrico