msi: Fix logical expressions that always evaluate to FALSE

Hans Leidekker hans at codeweavers.com
Mon Dec 10 02:11:35 CST 2012


On Sat, 2012-12-08 at 21:59 +0000, Andrew Talbot wrote:
> diff --git a/dlls/msi/action.c b/dlls/msi/action.c
> index 076d1b3..677a43f 100644
> --- a/dlls/msi/action.c
> +++ b/dlls/msi/action.c
> @@ -6763,7 +6763,7 @@ static UINT ACTION_RemoveODBC( MSIPACKAGE *package )
>  #define ENV_MOD_PREFIX      0x80000000
>  #define ENV_MOD_MASK        0xC0000000
>  
> -#define check_flag_combo(x, y) ((x) & ~(y)) == (y)
> +#define check_flag_combo(x, y) ((x) & (y)) == (y)
>  
>  static UINT env_parse_flags( LPCWSTR *name, LPCWSTR *value, DWORD *flags )
>  {

It makes the tests fail here:

err:msi:env_parse_flags Invalid flags: 00000007
err:msi:ITERATE_Actions Execution halted, action L"RemoveEnvironmentStrings" returned 1627
err:msi:env_parse_flags Invalid flags: 00000007
action.c:5899: Test failed: Expected ERROR_SUCCESS, got 1627
action.c:5905: Test failed: Expected ERROR_FILE_NOT_FOUND, got 0
action.c:5908: Test failed: Expected ERROR_FILE_NOT_FOUND, got 0
action.c:5920: Test failed: Expected ERROR_FILE_NOT_FOUND, got 0

I'd suggest to simply remove these checks.





More information about the wine-devel mailing list