[Spice-devel] [PATCH spice] spicec-x11: Add a few missing XLockDisplay calls (rhbz#54265)

Hans de Goede hdegoede at redhat.com
Thu Nov 18 00:35:23 PST 2010


Hi,

On 11/18/2010 09:32 AM, Alon Levy wrote:
> Looks pretty harmless, but that's from someone not even sure what XIM is (input management?).
>

Yes input management

> Did you just miss these calls when doing the XLockDisplay addition before?

Yes.

Regards,

Hans

>
> On Wed, Nov 17, 2010 at 12:30:46PM +0100, Hans de Goede wrote:
>> The XIM functions end up waiting for a reply from the server, so they
>> need locking around them. Idem for the XLookupString call.
>> ---
>>   client/x11/red_window.cpp |    6 ++++++
>>   1 files changed, 6 insertions(+), 0 deletions(-)
>>
>> diff --git a/client/x11/red_window.cpp b/client/x11/red_window.cpp
>> index c3ee1b0..c50e307 100644
>> --- a/client/x11/red_window.cpp
>> +++ b/client/x11/red_window.cpp
>> @@ -733,7 +733,9 @@ void RedWindow_p::handle_key_press_event(RedWindow&  window, XKeyEvent* event)
>>
>>       if (x_input_context != NULL) {
>>           for (;;) {
>> +            XLockDisplay(x_display);
>>               len = XwcLookupString(x_input_context, event, utf32_buf, buf_size,&key_sym,&status);
>> +            XUnlockDisplay(x_display);
>>               if (status != XBufferOverflow) {
>>                   break;
>>               }
>> @@ -767,7 +769,9 @@ void RedWindow_p::handle_key_press_event(RedWindow&  window, XKeyEvent* event)
>>           unsigned char buffer[16];
>>           int i;
>>
>> +        XLockDisplay(x_display);
>>           len = XLookupString(event, (char *)buffer, sizeof(buffer), NULL, NULL);
>> +        XUnlockDisplay(x_display);
>>           for (i = 0; i<  len; i++) {
>>               window.get_listener().on_char((uint32_t)buffer[i]);
>>           }
>> @@ -2135,7 +2139,9 @@ void RedWindow::on_focus_in()
>>       }
>>       _focused = true;
>>       if (x_input_context) {
>> +        XLockDisplay(x_display);
>>           XwcResetIC(x_input_context);
>> +        XUnlockDisplay(x_display);
>>       }
>>       XPlatform::on_focus_in();
>>       get_listener().on_activate();
>> --
>> 1.7.3.2
>>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list