From: Robert M. <rm...@po...> - 2006-01-05 21:43:50
|
Arthur Schwarz wrote: > I've just looked at GUI_Options.cpp again and wonder if the following code is > correct: > > perlcs->cs.style &= perlcs->cs.style ^ (DWORD) SvIV(ST(next_i)); Looks fine to me: &= (assignment operator) has lower precedence than ^ (Bitwise exclusive or) - see perldoc perlop So it is the same as: a = a & ( a ^ b) And drawing up the logic table: a b a^b (a^b)&a - - --- ------- 0 0 1 0 0 1 0 0 1 0 1 1 1 1 0 0 So the result is 1 only if a is 1 and b is 0, which is exactly what we're looking for. You're right that other options are possible (for example a &= ~b, which would be my first choice), but it's not broken. I haven't tried comparing speeds. Regards, Rob. |