summaryrefslogtreecommitdiffstats
path: root/server/red_worker.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-06-24 11:26:11 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-06-29 12:30:20 +0200
commitfada35a173996ff24aa081112d37cfa7292cabe3 (patch)
tree640b7566c59614ce65166d62a64d97cce3786743 /server/red_worker.c
parentb081ec4b0472b697862f996759e2e406a3af38f9 (diff)
downloadspice-fada35a173996ff24aa081112d37cfa7292cabe3.tar.gz
spice-fada35a173996ff24aa081112d37cfa7292cabe3.tar.xz
spice-fada35a173996ff24aa081112d37cfa7292cabe3.zip
qxl abi: parse QXLUpdateCmd.
Diffstat (limited to 'server/red_worker.c')
-rw-r--r--server/red_worker.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index 72eba108..b90c3f98 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -5042,18 +5042,18 @@ static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size)
break;
}
case QXL_CMD_UPDATE: {
- int surface_id;
+ RedUpdateCmd update;
QXLReleaseInfoExt release_info_ext;
- QXLUpdateCmd *draw_cmd = (QXLUpdateCmd *)get_virt(&worker->mem_slots, ext_cmd.cmd.data,
- sizeof(QXLUpdateCmd),
- ext_cmd.group_id);
- surface_id = draw_cmd->surface_id;
- validate_surface(worker, surface_id);
- red_update_area(worker, &draw_cmd->area, draw_cmd->surface_id);
- worker->qxl->st->qif->notify_update(worker->qxl, draw_cmd->update_id);
+
+ red_get_update_cmd(&worker->mem_slots, ext_cmd.group_id,
+ &update, ext_cmd.cmd.data);
+ validate_surface(worker, update.surface_id);
+ red_update_area(worker, &update.area, update.surface_id);
+ worker->qxl->st->qif->notify_update(worker->qxl, update.update_id);
release_info_ext.group_id = ext_cmd.group_id;
- release_info_ext.info = &draw_cmd->release_info;
+ release_info_ext.info = update.release_info;
worker->qxl->st->qif->release_resource(worker->qxl, release_info_ext);
+ red_put_update_cmd(&update);
break;
}
case QXL_CMD_MESSAGE: {