mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01:00
drm_format_set_union: Require initialized dst and remove assert
This commit is contained in:
parent
d7917d2076
commit
1ee75786b4
3 changed files with 4 additions and 7 deletions
|
@ -82,7 +82,8 @@ bool wlr_drm_format_set_intersect(struct wlr_drm_format_set *dst,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unions DRM format set `a` and `b`, storing in the destination set
|
* Unions DRM format set `a` and `b`, storing in the destination set
|
||||||
* `dst`.
|
* `dst`. The `dst` must either be zeroed or initialized with other state
|
||||||
|
* to be replaced.
|
||||||
*
|
*
|
||||||
* Returns false on failure.
|
* Returns false on failure.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -258,8 +258,6 @@ static bool drm_format_set_extend(struct wlr_drm_format_set *dst,
|
||||||
|
|
||||||
bool wlr_drm_format_set_union(struct wlr_drm_format_set *dst,
|
bool wlr_drm_format_set_union(struct wlr_drm_format_set *dst,
|
||||||
const struct wlr_drm_format_set *a, const struct wlr_drm_format_set *b) {
|
const struct wlr_drm_format_set *a, const struct wlr_drm_format_set *b) {
|
||||||
assert(dst != a && dst != b);
|
|
||||||
|
|
||||||
struct wlr_drm_format_set out = {0};
|
struct wlr_drm_format_set out = {0};
|
||||||
out.capacity = a->len + b->len;
|
out.capacity = a->len + b->len;
|
||||||
out.formats = calloc(out.capacity, sizeof(struct wlr_drm_format *));
|
out.formats = calloc(out.capacity, sizeof(struct wlr_drm_format *));
|
||||||
|
@ -276,6 +274,7 @@ bool wlr_drm_format_set_union(struct wlr_drm_format_set *dst,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wlr_drm_format_set_finish(dst);
|
||||||
*dst = out;
|
*dst = out;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -917,12 +917,9 @@ static bool set_default_feedback(struct wlr_linux_dmabuf_v1 *linux_dmabuf,
|
||||||
for (size_t i = 0; i < tranches_len; i++) {
|
for (size_t i = 0; i < tranches_len; i++) {
|
||||||
const struct wlr_linux_dmabuf_feedback_v1_tranche *tranche = &tranches[i];
|
const struct wlr_linux_dmabuf_feedback_v1_tranche *tranche = &tranches[i];
|
||||||
|
|
||||||
struct wlr_drm_format_set uni;
|
if (!wlr_drm_format_set_union(&formats, &formats, &tranche->formats)) {
|
||||||
if (!wlr_drm_format_set_union(&uni, &formats, &tranche->formats)) {
|
|
||||||
goto error_formats;
|
goto error_formats;
|
||||||
}
|
}
|
||||||
wlr_drm_format_set_finish(&formats);
|
|
||||||
formats = uni;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
compiled_feedback_destroy(linux_dmabuf->default_feedback);
|
compiled_feedback_destroy(linux_dmabuf->default_feedback);
|
||||||
|
|
Loading…
Reference in a new issue