Use wl_container_of() instead of casts

This slightly improves type safety.

The culprits were found with:

    git grep -E '\([a-z0-9_ ]+ \*\)\W?[a-z]'
This commit is contained in:
Simon Ser 2023-07-11 17:54:08 +02:00
parent c2c536de03
commit fe06e5f49a
29 changed files with 85 additions and 55 deletions

View file

@ -45,7 +45,8 @@ bool wlr_renderer_is_gles2(struct wlr_renderer *wlr_renderer) {
struct wlr_gles2_renderer *gles2_get_renderer(
struct wlr_renderer *wlr_renderer) {
assert(wlr_renderer_is_gles2(wlr_renderer));
return (struct wlr_gles2_renderer *)wlr_renderer;
struct wlr_gles2_renderer *renderer = wl_container_of(wlr_renderer, renderer, wlr_renderer);
return renderer;
}
static struct wlr_gles2_renderer *gles2_get_renderer_in_context(
@ -634,7 +635,7 @@ static int gles2_get_render_time(struct wlr_render_timer *wlr_timer) {
}
static void gles2_render_timer_destroy(struct wlr_render_timer *wlr_timer) {
struct wlr_gles2_render_timer *timer = (struct wlr_gles2_render_timer *)wlr_timer;
struct wlr_gles2_render_timer *timer = wl_container_of(wlr_timer, timer, base);
struct wlr_gles2_renderer *renderer = timer->renderer;
struct wlr_egl_context prev_ctx;

View file

@ -25,7 +25,8 @@ bool wlr_texture_is_gles2(struct wlr_texture *wlr_texture) {
struct wlr_gles2_texture *gles2_get_texture(
struct wlr_texture *wlr_texture) {
assert(wlr_texture_is_gles2(wlr_texture));
return (struct wlr_gles2_texture *)wlr_texture;
struct wlr_gles2_texture *texture = wl_container_of(wlr_texture, texture, wlr_texture);
return texture;
}
static bool gles2_texture_update_from_buffer(struct wlr_texture *wlr_texture,