gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems compiling NSAnimation.m


From: Graham J Lee
Subject: Re: problems compiling NSAnimation.m
Date: Thu, 10 May 2007 15:37:12 +0100

On 10 May 2007, at 15:28, Xavier Glattard wrote:

Richard Frith-Macdonald <richard <at> tiptree.demon.co.uk> writes:



On 10 May 2007, at 14:57, Xavier Glattard wrote:

Richard Frith-Macdonald <richard <at> tiptree.demon.co.uk> writes:

I fixed this to make __gs_isLocked an ivar rather than declaring it
locally (which was pretty suboptimal).  I also fixed a bug in the
unlock macro (it was setting the lag to the wrong value), and added
assertions to check that the macro is not misused.

Bad. If __gs_locked is needed (and as i said i think it is not : i
made
an error) then it must be declared in all methods. If __gs_isLocked is an ivar, its value can be changed in another method then the [unlock]
will never be called.

Sure, but similarly if it's a local variable its value can be
incorrectly changed within a method or function where it is declared.

If it is then you made an other programming error... ;-)
Its name is prefixed by an underscore (and by 'gs'!) so it shouldn't
be used by anyone.
Moreover an ivar is more easier to be incorrectly changed...
in an other method or even in a child class!

That's one of the reasons I suggested wrapping the whole macro in braces - the BOOL then becomes a local variable to the macro - reduces the chance of accidentally changing it by restricting the scope to only where it's used.

Cheers,

Graham.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]