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:
Christophe Fergeau 2018-11-29 13:50:03 +01:00 committed by Frediano Ziglio
parent 70f56ad2fa
commit 7f8228b540
3 changed files with 30 additions and 28 deletions

View File

@ -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)
{

View File

@ -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);

View File

@ -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;