From b27acd687800499324381648036edd098c996524 Mon Sep 17 00:00:00 2001 From: Jon Lund Steffensen Date: Wed, 11 Oct 2017 20:36:41 -0700 Subject: Allocate module data in init functions --- src/gamma-drm.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/gamma-drm.c') diff --git a/src/gamma-drm.c b/src/gamma-drm.c index 19f66fd..e706d46 100644 --- a/src/gamma-drm.c +++ b/src/gamma-drm.c @@ -15,6 +15,7 @@ along with Redshift. If not, see . Copyright (c) 2014 Mattias Andrée + Copyright (c) 2017 Jon Lund Steffensen */ #include @@ -42,14 +43,18 @@ static int -drm_init(drm_state_t *state) +drm_init(drm_state_t **state) { /* Initialize state. */ - state->card_num = 0; - state->crtc_num = -1; - state->fd = -1; - state->res = NULL; - state->crtcs = NULL; + *state = malloc(sizeof(drm_state_t)); + if (*state == NULL) return -1; + + drm_state_t *s = *state; + s->card_num = 0; + s->crtc_num = -1; + s->fd = -1; + s->res = NULL; + s->crtcs = NULL; return 0; } @@ -206,6 +211,8 @@ drm_free(drm_state_t *state) close(state->fd); state->fd = -1; } + + free(state); } static void -- cgit v1.2.3-70-g09d2