GetMessage related Jagged Alliance 2 regression

Alexander Dorofeyev alexd4 at inbox.lv
Sun Dec 9 20:20:15 CST 2007


Hello.

Is there a reason this fix you sent didn't make it to git yet? I think I 
accidentally replied to author only when previously answering, so in case it was 
something unexpected and got lost somehow I'm resending to wine-devel too.

The patch works fine for me, I've played JA2 with this patch applied for a 
substantial time, no problems noticed. Sorry for the noise, if you've already 
seen it.

Alexandre Julliard wrote:
> Alexander Dorofeyev <alexd4 at inbox.lv> writes:
> 
>> I'm not sure what would be a proper fix, although I did find out that commenting 
>> out this line in peek_message()
>>
>> if (HIWORD(flags)) flags = PM_QS_SENDMESSAGE | LOWORD(flags);
>>
>> makes the game playable. Maybe this clearing of PM_QS_* flags shouldn't be done 
>> in case when the message gets dropped? Before that commit nothing was passed in 
>> flags high word, which is probably why this problem wasn't happening.
> 
> Does this help?
> 
> diff --git a/dlls/user32/message.c b/dlls/user32/message.c
> index 53d1c1d..d3f4a3a 100644
> --- a/dlls/user32/message.c
> +++ b/dlls/user32/message.c
> @@ -2173,11 +2173,11 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
>                                     WMCHAR_MAP_RECVMESSAGE );
>          reply_message( &info, result, TRUE );
>          thread_info->receive_info = old_info;
> -    next:
> -        HeapFree( GetProcessHeap(), 0, buffer );
>  
>          /* if some PM_QS* flags were specified, only handle sent messages from now on */
>          if (HIWORD(flags)) flags = PM_QS_SENDMESSAGE | LOWORD(flags);
> +    next:
> +        HeapFree( GetProcessHeap(), 0, buffer );
>      }
>  }
>  
> 




More information about the wine-devel mailing list