no sure whether this is directly related the to the following thread,
but i want to pass it on before i lose the text. i just did an inc of
100 messages into an empty folder. i'm running a CVS snapshot from
around the time of the bad RC2 release. it has the simpler of the fixes
being discussed applied to it. i just got the following message:
inc: BUG: called folder_realloc with lo (1) > mp->lowmsg (0)
i don't have time right now to look into this -- but i can provide more
details about my code base if anyone needs them...
I do agree that mp->hghmsg++ is simpler than the whole chunk of code
(which I copied from folder_addmsg). I do think that mp->lowmsg
should be set to 1 if it was zero, though (since there is no message
number 0). Here's why:
Both calls to folder_realloc() in inc.c use 'mp->lowoff', not 'mp->lowmsg'
for the second argument 'int lo'. In 'folder_read()', this value will be
at least 1, so the particular code you mention won't fail.
In principle, I agree wholeheartedly about rigorous maintenance of state
variables. The whole business of dealing with the variables in
'struct msgs' would be better handled with a C++ class, or just subroutines
that are called when members need to be changed.
However, the nmh code set is a bit of jumble, and I really worry about
unintended side effects of a change that on the surface makes perfect sense.
So at this point I'd want to study the handling of 'mp->lowmsg' before
making the change.
paul fox, pgf(_at_)foxharp(_dot_)boston(_dot_)ma(_dot_)us (arlington, ma,
where it's 28.8 degrees)
Nmh-workers mailing list