mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-08-10 10:44:54 +00:00
qxl: Move red_drawable_unref/red_drawable_new
RedDrawable really is a RedDrawCmd which is parsed by red-parse-qxl.h Moreover, red_drawable_ref() is already defined inline in red-parse-qxl.h, and red_drawable_unref() is declared there too even if its code is still in red-worker.c This commit moves them close to the other functions creating/unref'ing QXL commands parsed by red-parse-qxl.h. Signed-off-by: Christophe Fergeau <cfergeau@redhat.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
This commit is contained in:
parent
70f56ad2fa
commit
7f8228b540
@ -1232,6 +1232,32 @@ void red_put_drawable(RedDrawable *red)
|
||||
}
|
||||
}
|
||||
|
||||
RedDrawable *red_drawable_new(QXLInstance *qxl)
|
||||
{
|
||||
RedDrawable * red = g_new0(RedDrawable, 1);
|
||||
|
||||
red->refs = 1;
|
||||
red->qxl = qxl;
|
||||
|
||||
return red;
|
||||
}
|
||||
|
||||
RedDrawable *red_drawable_ref(RedDrawable *drawable)
|
||||
{
|
||||
drawable->refs++;
|
||||
return drawable;
|
||||
}
|
||||
|
||||
void red_drawable_unref(RedDrawable *red_drawable)
|
||||
{
|
||||
if (--red_drawable->refs) {
|
||||
return;
|
||||
}
|
||||
red_qxl_release_resource(red_drawable->qxl, red_drawable->release_info_ext);
|
||||
red_put_drawable(red_drawable);
|
||||
g_free(red_drawable);
|
||||
}
|
||||
|
||||
bool red_get_update_cmd(RedMemSlotInfo *slots, int group_id,
|
||||
RedUpdateCmd *red, QXLPHYSICAL addr)
|
||||
{
|
||||
|
||||
@ -59,14 +59,6 @@ typedef struct RedDrawable {
|
||||
} u;
|
||||
} RedDrawable;
|
||||
|
||||
static inline RedDrawable *red_drawable_ref(RedDrawable *drawable)
|
||||
{
|
||||
drawable->refs++;
|
||||
return drawable;
|
||||
}
|
||||
|
||||
void red_drawable_unref(RedDrawable *red_drawable);
|
||||
|
||||
typedef struct RedUpdateCmd {
|
||||
QXLReleaseInfoExt release_info_ext;
|
||||
SpiceRect area;
|
||||
@ -118,6 +110,10 @@ typedef struct RedCursorCmd {
|
||||
|
||||
void red_get_rect_ptr(SpiceRect *red, const QXLRect *qxl);
|
||||
|
||||
RedDrawable *red_drawable_new(QXLInstance *qxl);
|
||||
RedDrawable *red_drawable_ref(RedDrawable *drawable);
|
||||
void red_drawable_unref(RedDrawable *red_drawable);
|
||||
|
||||
bool red_get_drawable(RedMemSlotInfo *slots, int group_id,
|
||||
RedDrawable *red, QXLPHYSICAL addr, uint32_t flags);
|
||||
void red_put_drawable(RedDrawable *red);
|
||||
|
||||
@ -92,16 +92,6 @@ struct RedWorker {
|
||||
GMainLoop *loop;
|
||||
};
|
||||
|
||||
void red_drawable_unref(RedDrawable *red_drawable)
|
||||
{
|
||||
if (--red_drawable->refs) {
|
||||
return;
|
||||
}
|
||||
red_qxl_release_resource(red_drawable->qxl, red_drawable->release_info_ext);
|
||||
red_put_drawable(red_drawable);
|
||||
g_free(red_drawable);
|
||||
}
|
||||
|
||||
static gboolean red_process_cursor_cmd(RedWorker *worker, const QXLCommandExt *ext)
|
||||
{
|
||||
RedCursorCmd *cursor_cmd;
|
||||
@ -158,16 +148,6 @@ static int red_process_cursor(RedWorker *worker, int *ring_is_empty)
|
||||
return n;
|
||||
}
|
||||
|
||||
static RedDrawable *red_drawable_new(QXLInstance *qxl)
|
||||
{
|
||||
RedDrawable * red = g_new0(RedDrawable, 1);
|
||||
|
||||
red->refs = 1;
|
||||
red->qxl = qxl;
|
||||
|
||||
return red;
|
||||
}
|
||||
|
||||
static gboolean red_process_surface_cmd(RedWorker *worker, QXLCommandExt *ext, gboolean loadvm)
|
||||
{
|
||||
RedSurfaceCmd surface_cmd;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user