[mutter] wayland/buffer-ref: Add helpers for use count tracking
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland/buffer-ref: Add helpers for use count tracking
- Date: Thu, 16 Apr 2020 14:08:47 +0000 (UTC)
commit f8ee974628504e5ca917cf03a9effdd810629332
Author: Jonas Ådahl <jadahl gmail com>
Date: Wed Sep 11 21:54:37 2019 +0200
wayland/buffer-ref: Add helpers for use count tracking
https://gitlab.gnome.org/GNOME/mutter/merge_requests/798
src/wayland/meta-wayland-surface.c | 39 ++++++++++++++++++++++++--------------
1 file changed, 25 insertions(+), 14 deletions(-)
---
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index c3d56d74d..99f3fc58b 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -142,6 +142,29 @@ meta_wayland_buffer_ref_unref (MetaWaylandBufferRef *buffer_ref)
}
}
+static void
+meta_wayland_buffer_ref_inc_use_count (MetaWaylandBufferRef *buffer_ref)
+{
+ g_return_if_fail (buffer_ref->buffer);
+ g_warn_if_fail (buffer_ref->buffer->resource);
+
+ buffer_ref->use_count++;
+}
+
+static void
+meta_wayland_buffer_ref_dec_use_count (MetaWaylandBufferRef *buffer_ref)
+{
+ MetaWaylandBuffer *buffer = buffer_ref->buffer;
+
+ g_return_if_fail (buffer_ref->use_count > 0);
+ g_return_if_fail (buffer);
+
+ buffer_ref->use_count--;
+
+ if (buffer_ref->use_count == 0 && buffer->resource)
+ wl_buffer_send_release (buffer->resource);
+}
+
static void
role_assignment_valist_to_properties (GType role_type,
const char *first_property_name,
@@ -392,25 +415,13 @@ meta_wayland_surface_get_buffer (MetaWaylandSurface *surface)
void
meta_wayland_surface_ref_buffer_use_count (MetaWaylandSurface *surface)
{
- g_return_if_fail (surface->buffer_ref->buffer);
- g_warn_if_fail (surface->buffer_ref->buffer->resource);
-
- surface->buffer_ref->use_count++;
+ meta_wayland_buffer_ref_inc_use_count (surface->buffer_ref);
}
void
meta_wayland_surface_unref_buffer_use_count (MetaWaylandSurface *surface)
{
- MetaWaylandBuffer *buffer = surface->buffer_ref->buffer;
-
- g_return_if_fail (surface->buffer_ref->use_count != 0);
-
- surface->buffer_ref->use_count--;
-
- g_return_if_fail (buffer);
-
- if (surface->buffer_ref->use_count == 0 && buffer->resource)
- wl_buffer_send_release (buffer->resource);
+ meta_wayland_buffer_ref_dec_use_count (surface->buffer_ref);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]