On 26 Oct 2010, at 16:12, Sergei Gorelkin wrote:

zeljko пишет:
On Tuesday 26 October 2010 15:13, Felipe Monteiro de Carvalho wrote:
On Tue, Oct 26, 2010 at 3:14 PM, zeljko <zel...@holobit.net> wrote:
No, I've opened an issue and Jonas closed with good explanation - we had misusage of IntersectRect in gtk/gtk2 interfaces (I've fixed both) ... so
not bug.
I guess it depends on how you see it.

Anyway, the solution would be trivial, just store the inputs in local vars.
I know, but generally speaking Jonas is correct, but you too :). I don't like current fpc solution too, but can live with it.
With a little testing, here are two facts:
1) Delphi 7 also shows this bug.
2) Windows.IntersectRect() does not show it, allowing 'misuses'.

So, whoever wrote the FPC function, must have been trying really hard to achieve bug-to-bug compatibility with Delphi... or simply copied their buggy code.

Not necessarily. It's probably a consequence of the person not seeing a reason for first doing everything in a temporary variable and then copying this temporary variable to the destination. Unless you consciously think about the fact that const parameters may be passed by reference, it's easy to make such "mistakes" (although technically, they are not mistakes, but they do make it easier for people using such a function to make error).


Jonas_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to