[cairo] [PATCH 41/71] drm: consolidated *_bo_release() functions

Enrico Weigelt, metux IT consult enrico.weigelt at gr13.net
Mon Apr 17 16:57:20 UTC 2017


Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt at gr13.net>
---
 src/drm/cairo-drm-intel.c   | 17 +----------------
 src/drm/cairo-drm-private.h |  3 +++
 src/drm/cairo-drm-radeon.c  | 12 +-----------
 src/drm/cairo-drm.c         |  8 ++++++++
 4 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/src/drm/cairo-drm-intel.c b/src/drm/cairo-drm-intel.c
index 515eec91c..1bf522bb9 100644
--- a/src/drm/cairo-drm-intel.c
+++ b/src/drm/cairo-drm-intel.c
@@ -485,21 +485,6 @@ FAIL:
     return NULL;
 }
 
-static void
-intel_bo_release (cairo_drm_device_t *_dev, cairo_drm_bo_t *_bo)
-{
-    intel_device_t *device = _cairo_drm_device_cast_intel(_dev);
-    intel_bo_t *bo = _cairo_drm_bo_cast_intel(_bo);
-
-    _cairo_drm_bo_unmap (_bo);
-
-    assert (bo->exec == NULL);
-    assert (cairo_list_is_empty (&bo->cache_list));
-
-    _cairo_drm_bo_close (_dev, _bo);
-    _cairo_freepool_free (&device->base.bo_pool, bo);
-}
-
 void
 intel_bo_set_tiling (const intel_device_t *device,
 	             intel_bo_t *bo)
@@ -720,7 +705,7 @@ intel_device_init (intel_device_t *device, int fd)
 
     device->gradient_cache.size = 0;
 
-    device->base.bo.release = intel_bo_release;
+    device->base.bo.release = _cairo_drm_bo_release;
     device->base.bo.map     = _cairo_drm_intel_bo_map;
 
     return CAIRO_STATUS_SUCCESS;
diff --git a/src/drm/cairo-drm-private.h b/src/drm/cairo-drm-private.h
index ca295d943..d62b953aa 100644
--- a/src/drm/cairo-drm-private.h
+++ b/src/drm/cairo-drm-private.h
@@ -193,6 +193,9 @@ _cairo_device_cast_drm_const(const cairo_device_t *device)
 cairo_private void
 _cairo_drm_bo_unmap (cairo_drm_bo_t *bo);
 
+cairo_private void
+_cairo_drm_bo_release (cairo_drm_device_t *device, cairo_drm_bo_t *bo);
+
 static inline cairo_drm_bo_t *
 cairo_drm_bo_reference (cairo_drm_bo_t *bo)
 {
diff --git a/src/drm/cairo-drm-radeon.c b/src/drm/cairo-drm-radeon.c
index 72cc0b04c..c8905cee4 100644
--- a/src/drm/cairo-drm-radeon.c
+++ b/src/drm/cairo-drm-radeon.c
@@ -242,16 +242,6 @@ radeon_bo_create_for_name (radeon_device_t *device,
     return &bo->base;
 }
 
-static void
-radeon_bo_release (cairo_drm_device_t *_dev, cairo_drm_bo_t *_bo)
-{
-    radeon_device_t *device = _cairo_drm_device_cast_radeon(_dev);
-    radeon_bo_t *bo = _cairo_drm_bo_cast_radeon(_bo);
-
-    _cairo_drm_bo_close (&device->base, &bo->base);
-    _cairo_freepool_free (&device->base.bo_pool, bo);
-}
-
 cairo_surface_t *
 _cairo_drm_radeon_bo_get_image (const cairo_drm_device_t *drm_dev,
 	             cairo_drm_bo_t *drm_bo,
@@ -299,7 +289,7 @@ radeon_device_init (radeon_device_t *device, int fd)
 {
     _cairo_freepool_init (&device->base.bo_pool, sizeof (radeon_bo_t));
 
-    device->base.bo.release   = radeon_bo_release;
+    device->base.bo.release   = _cairo_drm_bo_release;
     device->base.bo.map       = _cairo_drm_radeon_bo_map;
     device->base.bo.get_image = _cairo_drm_radeon_bo_get_image;
 
diff --git a/src/drm/cairo-drm.c b/src/drm/cairo-drm.c
index d4c107925..42bb04199 100644
--- a/src/drm/cairo-drm.c
+++ b/src/drm/cairo-drm.c
@@ -388,3 +388,11 @@ cairo_drm_device_throttle (cairo_device_t *abstract_device)
     if (unlikely (status))
 	_cairo_status_set_error (&device->base.status, status);
 }
+
+void
+_cairo_drm_bo_release (cairo_drm_device_t *device, cairo_drm_bo_t *bo)
+{
+    _cairo_drm_bo_unmap (bo);
+    _cairo_drm_bo_close (device, bo);
+    _cairo_freepool_free (&device->bo_pool, bo);
+}
-- 
2.11.0.rc0.7.gbe5a750



More information about the cairo mailing list