summaryrefslogtreecommitdiffstats
path: root/src/blueshift_vidmode_c.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/blueshift_vidmode_c.c')
-rw-r--r--src/blueshift_vidmode_c.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/blueshift_vidmode_c.c b/src/blueshift_vidmode_c.c
index 8b9994d..42b501e 100644
--- a/src/blueshift_vidmode_c.c
+++ b/src/blueshift_vidmode_c.c
@@ -129,7 +129,7 @@ uint16_t* blueshift_vidmode_read(int use_crtc)
/* Read curves */
- uint16_t* r_gamma = ((uint16_t*)malloc((3 + 3 * curve_size) * sizeof(uint16_t))) + 1;
+ uint16_t* r_gamma = malloc((3 + 3 * curve_size) * sizeof(uint16_t));
uint16_t* g_gamma = r_gamma + curve_size + 1;
uint16_t* b_gamma = g_gamma + curve_size + 1;
if (r_gamma == NULL)
@@ -139,6 +139,10 @@ uint16_t* blueshift_vidmode_read(int use_crtc)
return NULL;
}
+ *r_gamma++ = curve_size;
+ *g_gamma++ = curve_size;
+ *b_gamma++ = curve_size;
+
if (XF86VidModeGetGammaRamp(display, screen, curve_size, r_gamma, g_gamma, b_gamma) == 0)
{
fprintf(stderr, "VidMode gamma query failed\n");
@@ -147,10 +151,7 @@ uint16_t* blueshift_vidmode_read(int use_crtc)
return NULL;
}
- *(r_gamma - 1) = curve_size;
- *(g_gamma - 1) = curve_size;
- *(b_gamma - 1) = curve_size;
- return r_gamma;
+ return r_gamma - 1;
}