On Wed, 2010-05-12 at 13:32 +0200, Gerd Hoffmann wrote: > -static void qxl_worker_stop(QXLWorker *qxl_worker) > -{ > - RedDispatcher *dispatcher = (RedDispatcher *)qxl_worker; > - RedWorkeMessage message = RED_WORKER_MESSAGE_STOP; > + RedWorkeMessage message = RED_WORKER_MESSAGE_LOADVM_COMMANDS; > > + red_printf("");
Eh? > static inline void red_create_surface(RedWorker *worker, uint32_t > surface_id, uint32_t width, > uint32_t height, int32_t stride, > uint32_t format, > - void *line_0) > + void *line_0, int data_is_valid) > { > uint32_t i; > RedSurface *surface = &worker->surfaces[surface_id]; > @@ -8039,7 +8040,8 @@ static inline void red_create_surface(RedWorker > *worker, uint32_t surface_id, ui > surface->context.format = format; > surface->context.stride = stride; > surface->context.line_0 = line_0; > - memset(line_0 + (int32_t)(stride * (height - 1)), 0, height*abs(stride)); > + if (!data_is_valid) > + memset(line_0 + (int32_t)(stride * (height - 1)), 0, > height*abs(stride)); Missing brackets around block. > @@ -9138,7 +9086,7 @@ static inline void > handle_dev_create_primary_surface(RedWorker *worker) > } > > red_create_surface(worker, 0, surface.width, surface.height, > surface.stride, surface.format, > - line_0); > + line_0, 1); Maybe add a comment saying why we data_is_valid is needed for primary surfaces. > + case RED_WORKER_MESSAGE_LOADVM_COMMANDS: { > + uint32_t count; > + QXLCommandExt ext; > + QXLCursorCmd *cursor_cmd; > + QXLSurfaceCmd *surface_cmd; > + > + red_printf("loadvm_commands"); > + receive_data(worker->channel, &count, sizeof(uint32_t)); > + while (count > 0) { > + receive_data(worker->channel, &ext, sizeof(QXLCommandExt)); > + switch (ext.cmd.type) { > + case QXL_CMD_CURSOR: > + cursor_cmd = (QXLCursorCmd *)get_virt(&worker->mem_slots, > + ext.cmd.data, > + sizeof(QXLCursorCmd), > + ext.group_id); > + qxl_process_cursor(worker, cursor_cmd, ext.group_id); > + break; > + case QXL_CMD_SURFACE: > + surface_cmd = (QXLSurfaceCmd *)get_virt(&worker->mem_slots, > + ext.cmd.data, > + > sizeof(QXLSurfaceCmd), > + ext.group_id); > + red_process_surface(worker, surface_cmd, ext.group_id, 1); > + break; > + } Maybe we want a default: here to catch any weird things happening with a printf? -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc al...@redhat.com alexander.lars...@gmail.com He's a leather-clad bohemian vagrant haunted by an iconic dead American confidante She's a hard-bitten junkie schoolgirl with someone else's memories. They fight crime! _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel