[PATCH] dsound: Remove useless casts to self

Michael Stefaniuc mstefani at winehq.org
Fri Mar 1 14:02:39 CST 2019


On 3/1/19 8:53 PM, Michael Stefaniuc wrote:
> On 3/1/19 2:53 PM, Andrew Eikum wrote:
>> On Thu, Feb 28, 2019 at 12:50:29AM +0100, Michael Stefaniuc wrote:
>>> diff --git a/dlls/dsound/primary.c b/dlls/dsound/primary.c
>>> index 9f41a2b47f..852ec51b7f 100644
>>> --- a/dlls/dsound/primary.c
>>> +++ b/dlls/dsound/primary.c
>>> @@ -576,7 +576,7 @@ static HRESULT WINAPI PrimaryBufferImpl_SetVolume(IDirectSoundBuffer8 *iface, LO
>>>  
>>>  		for (i = 0; i < DS_MAX_CHANNELS; i++) {
>>>  			if (device->pwfx->nChannels > i){
>>> -				fvol = (float)((DWORD)(device->volpan.dwTotalAmpFactor[i] & 0xFFFF) / (float)0xFFFF);
>>> +				fvol = (float)((device->volpan.dwTotalAmpFactor[i] & 0xFFFF) / (float)0xFFFF);
>>>  				hr = IAudioStreamVolume_SetChannelVolume(device->volume, i, fvol);
>>>  				if (FAILED(hr)){
>>>  					LeaveCriticalSection(&device->mixlock);
>>
>> I guess I'm not opposed to these patches, but I don't really see the
>> benefit either.
> Less code is the first visible change.
> But more importantly casts function a little bit like a comment
>     /* WARNING THERE MIGHT BE DRAGONS!! */
> Superfluous casts just drag the attention to code were no extra
> attention is needed.
Oh, and for pointer casts there is the real danger of silencing the
compiler and masking errors.
Common ones I've run into and even did that mistake myself was casting
the wrong indirection level, e.g. (foo *)ptr instead of (foo *)&ptr.
But I've run into a few bugs where it was casting the completely wrong
thing.


bye
	michael



More information about the wine-devel mailing list