Merge pull request #435 from lordcrc/master

Fixed deadlock issue in event queue and SHM usage.
This commit is contained in:
Marc-André Moreau 2012-02-15 08:17:54 -08:00
commit b369a92639
2 changed files with 9 additions and 10 deletions

View File

@ -96,9 +96,9 @@ void xf_event_push(xfEventQueue* event_queue, xfEvent* event)
event_queue->events[(event_queue->count)++] = event;
xf_set_event(event_queue);
pthread_mutex_unlock(&(event_queue->mutex));
xf_set_event(event_queue);
}
xfEvent* xf_event_peek(xfEventQueue* event_queue)

View File

@ -413,20 +413,19 @@ void xf_peer_rfx_update(freerdp_peer* client, int x, int y, int width, int heigh
if (xfi->use_xshm)
{
width = x + width;
height = y + height;
x = 0;
y = 0;
rect.x = x;
rect.y = y;
/**
* Passing an offset source rectangle to rfx_compose_message()
* leads to protocol errors, so offset the data pointer instead.
*/
rect.x = 0;
rect.y = 0;
rect.width = width;
rect.height = height;
image = xf_snapshot(xfp, x, y, width, height);
data = (uint8*) image->data;
data = &data[(y * image->bytes_per_line) + (x * image->bits_per_pixel)];
data = &data[(y * image->bytes_per_line) + (x * image->bits_per_pixel / 8)];
rfx_compose_message(xfp->rfx_context, s, &rect, 1, data,
width, height, image->bytes_per_line);