Hi, On Tue, Jul 26, 2005 at 11:08:12PM -0400, Michael Carlson wrote: > I agree, the compiler should realise the parameters aren't used as an > l-value in the function anywhere - but it apparently doesn't, or > marking the parameters const is having some other effect on the binary > - with gcc 4.0.1 (at least on my system, Debian sid), the compiled > size of winex11.drv.so changes with my patch (it increases by 368 > bytes from 5335409 -> 5335777). Just changing the parameters to const > for the function in question (and none of the other functions in the > file) increases the size from the original size by 64 bytes. > > I won't pretend to know why my patch increases the size of the binary, > but it shows that even without looking at the assembly code, this > patch is making some kind of difference (whether good or bad) in the > compiled code. I would look further into it, but I don't know > assembly. You probably need to strip the binary or omit gcc -g in order to obtain meaningful numbers, since otherwise it probably encodes the additional const in debug information tables, too, which thus increases the size of the binary.
> Anyway, I'm the amateur wine-hacker here, so if you guys still say we > shouldn't change it, I won't argue the matter further. I just want to > point out that this patch is certainly doing SOMETHING to the > resulting binary, and it's possibly good. While I'm not too convinced in this case (1.5% improvement sounds like within statistic noise), it should be a good idea to mark things in Wine const whenever possible (objdump -x helps here), since it improves reliability (erroneous random memory area writes will crash in const areas) and performance (hints for the compiler in some non-optimized compiler cases, page discarding instead of swapping). Andreas Mohr -- GNU/Linux. It's not the software thats free, it's you.