@@ -144,6 +144,29 @@ meta_wayland_buffer_ref_unref (MetaWaylandBufferRef *buffer_ref)
144144 }
145145}
146146
147+ static void
148+ meta_wayland_buffer_ref_inc_use_count (MetaWaylandBufferRef * buffer_ref )
149+ {
150+ g_return_if_fail (buffer_ref -> buffer );
151+ g_warn_if_fail (buffer_ref -> buffer -> resource );
152+
153+ buffer_ref -> use_count ++ ;
154+ }
155+
156+ static void
157+ meta_wayland_buffer_ref_dec_use_count (MetaWaylandBufferRef * buffer_ref )
158+ {
159+ MetaWaylandBuffer * buffer = buffer_ref -> buffer ;
160+
161+ g_return_if_fail (buffer_ref -> use_count > 0 );
162+ g_return_if_fail (buffer );
163+
164+ buffer_ref -> use_count -- ;
165+
166+ if (buffer_ref -> use_count == 0 && buffer -> resource )
167+ wl_buffer_send_release (buffer -> resource );
168+ }
169+
147170static void
148171role_assignment_valist_to_properties (GType role_type ,
149172 const char * first_property_name ,
@@ -385,25 +408,13 @@ meta_wayland_surface_get_buffer (MetaWaylandSurface *surface)
385408void
386409meta_wayland_surface_ref_buffer_use_count (MetaWaylandSurface * surface )
387410{
388- g_return_if_fail (surface -> buffer_ref -> buffer );
389- g_warn_if_fail (surface -> buffer_ref -> buffer -> resource );
390-
391- surface -> buffer_ref -> use_count ++ ;
411+ meta_wayland_buffer_ref_inc_use_count (surface -> buffer_ref );
392412}
393413
394414void
395415meta_wayland_surface_unref_buffer_use_count (MetaWaylandSurface * surface )
396416{
397- MetaWaylandBuffer * buffer = surface -> buffer_ref -> buffer ;
398-
399- g_return_if_fail (surface -> buffer_ref -> use_count != 0 );
400-
401- surface -> buffer_ref -> use_count -- ;
402-
403- g_return_if_fail (buffer );
404-
405- if (surface -> buffer_ref -> use_count == 0 && buffer -> resource )
406- wl_buffer_send_release (buffer -> resource );
417+ meta_wayland_buffer_ref_dec_use_count (surface -> buffer_ref );
407418}
408419
409420static void
0 commit comments