Re: dsound/tests: DirectSound3DListener_QueryInterface should accept IKsPropertySet
Hi, I don't know how others feel about this pattern: + ok(rc==DS_OK && temp_buffer!=NULL, ... + if(temp_buffer) IKsPropertySet_Release(temp_buffer); I'd rather code like this if (rc==DS_OK && temp_buffer) Release(). The reason is that the typical invariant is "Any output variable is correctly set if and only if the called function indicated success on return". And the corollar: If it failed, output variables may generally be filled with garbage. Similarly, access errno only after an I/O function returned failure. I do not dispute that it is good style for the callee to only set output variables when returning success. But that is a requirement hard to maintain in SW and often violated. E.g. there's a lot of code like: ... if (some) return ERROR; *outparam1= xyz; ... if (more) return ERROR; ... *outparam2= abc; ... return SUCCESS; See how p1 may contain garbage? Regards, Jörg Höhle
participants (1)
-
Joerg-Cyril.Hoehle@t-systems.com