replay: fix check for QXL_SURF_FLAG_KEEP_DATA flag

A logical and (&&) was used instead of a bit one (&).
Was working just as is the only flag defined.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidencio <ffidenci@redhat.com>
This commit is contained in:
Frediano Ziglio 2015-08-25 08:58:53 +01:00
parent a9e34bd27a
commit f01c462031
2 changed files with 2 additions and 2 deletions

View File

@ -724,7 +724,7 @@ static void red_record_surface_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id
fprintf(fd, "u.surface_create.height %d\n", qxl->u.surface_create.height);
fprintf(fd, "u.surface_create.stride %d\n", qxl->u.surface_create.stride);
size = qxl->u.surface_create.height * abs(qxl->u.surface_create.stride);
if (qxl->flags && QXL_SURF_FLAG_KEEP_DATA) {
if ((qxl->flags & QXL_SURF_FLAG_KEEP_DATA) != 0) {
write_binary(fd, "data", size,
(uint8_t*)get_virt(slots, qxl->u.surface_create.data, size, group_id,
&error));

View File

@ -1025,7 +1025,7 @@ static QXLSurfaceCmd *red_replay_surface_cmd(SpiceReplay *replay)
replay_fscanf(replay, "u.surface_create.height %d\n", &qxl->u.surface_create.height);
replay_fscanf(replay, "u.surface_create.stride %d\n", &qxl->u.surface_create.stride);
size = qxl->u.surface_create.height * abs(qxl->u.surface_create.stride);
if (qxl->flags && QXL_SURF_FLAG_KEEP_DATA) {
if ((qxl->flags & QXL_SURF_FLAG_KEEP_DATA) != 0) {
read_binary(replay, "data", &read_size, (uint8_t**)&qxl->u.surface_create.data, 0);
if (read_size != size) {
spice_printerr("mismatch %ld != %ld", size, read_size);