Hey, Currently, after parsing a QXL command through red-parse-qxl, the code which got the command has to tell red-parse-qxl when it no longer needs the command, but also to remember to release the command QXL resources itself. This series moves this 'release resource' logic to red-parse-qxl. This also changes all the parsed QXL commands to use _new/_ref/_unref in order to have a consistent API. The last 3 patches "qxl: Use QXLCommandExt in external red-parse-qxl.h API", "qxl: Introduce RedQXLGuestResources" and "qxl: Improve 'red' and 'qxl' argument name" are mostly RFCs, they can be dropped from the series with no issues. Changes since v2: - switched all QXL command parsing to use _new/_ref/_unref - added new patches doing this for RedSurfaceCmd - added patches introducing RedQXLGuestResources and using QXLCommandExt in red-parse-qxl.h interface Changes since v1: - moved renaming patch to the end, and made it much more extensive - added a new patch unifying identical methods - reworked 'qxl: Fix guest resources release in red_put_drawable()' so that it's similar to the cursor changes Christophe Christophe Fergeau (14): qxl: Move red_drawable_unref/red_drawable_new qxl: Make red_{get,put}_drawable static qxl: Fix guest resources release in red_put_drawable() qxl: Add red_cursor_cmd_{new,ref,unref} helpers qxl: Release QXL resource in red_put_message qxl: Add red_message_{new,ref,unref} helpers qxl: Release QXL resources in red_put_update_cmd qxl: Add red_update_cmd_{new,ref,unref} helpers qxl: Add red_surface_cmd_{new,ref,unref} helpers display-channel: Store full RedSurfaceCmd, not just QXLReleaseInfoExt qxl: Release QXL resources in red_put_surface_cmd qxl: Improve 'red' and 'qxl' argument names qxl: Introduce RedQXLGuestResources qxl: Use QXLCommandExt in external red-parse-qxl.h API server/cursor-channel.c | 8 +- server/display-channel-private.h | 7 +- server/display-channel.c | 21 +- server/display-channel.h | 2 +- server/red-parse-qxl.c | 1129 ++++++++++++++++++++++---------------- server/red-parse-qxl.h | 61 +- server/red-worker.c | 81 +-- server/tests/test-qxl-parsing.c | 73 ++- 8 files changed, 783 insertions(+), 599 deletions(-) -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel