On 2014-11-12 19.41, David Quintana (gigaherz) wrote:
It's a common practice to include giant code dumps
as attachments
instead of inlining them in the text of the mail.
It may also be a good idea to provide multiple patches based on
component, so that different people can take a look at the patches
relating to their areas of expertise.
If providing one patch per folder is too much work, then at least
based on the top-level one. applications.patch, dll.patch,
ntoskrnl.patch, etc. would be much easier to review.
Yes, I know..
But since each of these patches are exceedingly trivial, strongly
inter-related,
exposes a common bad habit in programming, and this touches practically
every part of the system, I chose to make one big patch this time.
Had the patches been more involved, or fewer,
I would of course have posted them in chunks.
Best Regards
// Love
On 12 November 2014 10:48, Love Nystrom <love.nystrom(a)gmail.com
<mailto:love.nystrom@gmail.com>> wrote:
Grep'ing for [ \t]*==[ \t]*TRUE and [ \t]*!=[ \t]*TRUE revealed
some 400 matches..
That's *400 potential malfunctions begging to happen*, as
previously concluded.
If you *must*, for some obscure reason, code an explicit
truth-value comparison,
for God's sake make it (boolVal != FALSE) or (boolVal == FALSE),
which is safe,
because a BOOL has 2^32-2 TRUE values !!!
However, the more efficient "if ( boolVal )" and "if ( !boolVal
)"
ought to be *mandatory*.
I do hope nobody will challenge that "if ( boolVal )" equals "if (
boolVal != FALSE )",
and does *not* equal "if ( boolVal == TRUE )", when boolVal is
BOOL or BOOLEAN...
I've patched all those potential errors against the current trunk.
In most cases a simple removal of "== TRUE" was sufficient, however in
asserts I replaced it with "!= FALSE", since that may be clearer
when triggered.
The only places I let it pass was in pure debug strings and comments.
As this is a *fairly extensive patch*, I would very much
appreciate if a
*prioritized regression test* could be run by you guys who do such
things,
since this may actually fix some "mysterious" malfunctions, or
introduce
bugs that did not trigger in my alpha test.
My own alpha test was limited to building and installing it on
VMware Player 6,
and concluding that "it appears to run without obvious malfunctions".
*Actually, when compared to a pre-patch build, one "mysterious"
crash disappeared!*
The patch has been submitted as bug CORE-8799, and is also
included inline in this post.
Best Regards
// Love
[abbrev]