On Aug 29, 2013, at 8:15 AM, matyapiro31 wrote:
<0001-kernel32-change-for-loop-to-optimize.patch><0002-kernel32-change-for-loop-to-optimize.patch>
One patch per email, please. Also, the subject should be more descriptive.
The first one doesn't look much better than the second one (which was already
rejected). sizeof(array)/sizeof(array[0]) is a constant expression; any optimizing
compiler worth its salt will optimize that for you. (And I would know, because I work on
LLVM and Clang.)
The first part of that patch (against dlls/kernel32/console.c) might be a bit more
promising, though, since it hoists a computation that isn't constant at compile time
but is constant for the duration of the loop; but again, any good optimizing compiler
would be smart enough to do that, too. Oh, and you forgot to actually declare the
variables that hold the hoisted values. Those assignments don't count, because:
a) You never gave them a type. That's an error in any C compiler (C89, C99, etc.)
I'm not even sure a K&R compiler would take that.
b) Wine is written in C89 (with some GNU extensions scattered throughout, but generally we
try to write portable code around here); that means (among other things) all variable
declarations must come before other statements.
Did you even try to compile Wine with these patches?
Chip