[Spice-devel] [spice-server v3 00/14] qxl: Move more guest resource release to red-parse-qxl

Christophe Fergeau cfergeau at redhat.com
Tue Apr 24 10:29:04 UTC 2018


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



More information about the Spice-devel mailing list