aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/render/drm_format_set.h2
-rw-r--r--render/drm_format_set.c16
2 files changed, 6 insertions, 12 deletions
diff --git a/include/render/drm_format_set.h b/include/render/drm_format_set.h
index 8614d0b9..8734ea7a 100644
--- a/include/render/drm_format_set.h
+++ b/include/render/drm_format_set.h
@@ -3,7 +3,7 @@
#include <wlr/render/drm_format_set.h>
-struct wlr_drm_format *wlr_drm_format_create(uint32_t format);
+void wlr_drm_format_init(struct wlr_drm_format *fmt, uint32_t format);
bool wlr_drm_format_has(const struct wlr_drm_format *fmt, uint64_t modifier);
bool wlr_drm_format_add(struct wlr_drm_format *fmt, uint64_t modifier);
struct wlr_drm_format *wlr_drm_format_dup(const struct wlr_drm_format *format);
diff --git a/render/drm_format_set.c b/render/drm_format_set.c
index 2412144c..52603db7 100644
--- a/render/drm_format_set.c
+++ b/render/drm_format_set.c
@@ -64,10 +64,12 @@ bool wlr_drm_format_set_add(struct wlr_drm_format_set *set, uint32_t format,
return wlr_drm_format_add(*ptr, modifier);
}
- struct wlr_drm_format *fmt = wlr_drm_format_create(format);
+ struct wlr_drm_format *fmt = calloc(1, sizeof(*fmt));
if (!fmt) {
return false;
}
+
+ wlr_drm_format_init(fmt, format);
if (!wlr_drm_format_add(fmt, modifier)) {
wlr_drm_format_finish(fmt);
return false;
@@ -92,17 +94,9 @@ bool wlr_drm_format_set_add(struct wlr_drm_format_set *set, uint32_t format,
return true;
}
-struct wlr_drm_format *wlr_drm_format_create(uint32_t format) {
- size_t capacity = 4;
- struct wlr_drm_format *fmt = calloc(1, sizeof(*fmt));
- if (!fmt) {
- wlr_log_errno(WLR_ERROR, "Allocation failed");
- return NULL;
- }
+void wlr_drm_format_init(struct wlr_drm_format *fmt, uint32_t format) {
+ memset(fmt, 0, sizeof(*fmt));
fmt->format = format;
- fmt->capacity = capacity;
- fmt->modifiers = malloc(sizeof(*fmt->modifiers) * capacity);
- return fmt;
}
bool wlr_drm_format_has(const struct wlr_drm_format *fmt, uint64_t modifier) {