diff options
Diffstat (limited to 'src/servers')
-rw-r--r-- | src/servers/crtc.c | 4 | ||||
-rw-r--r-- | src/servers/gamma.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/servers/crtc.c b/src/servers/crtc.c index bc3b51b..9e08820 100644 --- a/src/servers/crtc.c +++ b/src/servers/crtc.c @@ -129,6 +129,7 @@ int initialise_crtcs(void) int gerror; /* Get partitions */ + outputs_n = 0; if (site.partitions_available) if (!(partitions = calloc(site.partitions_available, sizeof(*partitions)))) goto fail; @@ -244,12 +245,15 @@ int disconnect(void) { outputs[i].crtc = NULL; libgamma_crtc_destroy(crtcs + i); + output_destroy(outputs + i); } free(crtcs), crtcs = NULL; + free(outputs), outputs = NULL; for (i = 0; i < site.partitions_available; i++) libgamma_partition_destroy(partitions + i); free(partitions), partitions = NULL; libgamma_site_destroy(&site); + memset(&site, 0, sizeof(site)); return 0; } diff --git a/src/servers/gamma.c b/src/servers/gamma.c index 8f2df15..17105d4 100644 --- a/src/servers/gamma.c +++ b/src/servers/gamma.c @@ -356,6 +356,8 @@ void restore_gamma(void) { if (outputs[i].supported == LIBGAMMA_NO) continue; + if (outputs[i].saved_ramps.u8.red == NULL) + continue; switch (outputs[i].depth) { |