On 06/10/2013 03:18 AM, Pekka Paalanen wrote:
On Fri, 7 Jun 2013 17:13:59 +0200
Marc Chalain <[email protected]> wrote:
+ cmap->start = 0;
+ cmap->len = cols;
+ cmap->red = colors;
+ cmap->blue = colors;
+ cmap->green = colors;
If there actually is a difference between rcols, gcols, and bcols,
should you not compute a different a 'colors' array for each different
_cols?
I don't know if this cmap structure could be changed, but it would be a
lot easier if it was a single 2-D array, indexed as
cmap->map[index][channel].
Structures like this usually mean I have to make a kludge so that I can
turn an index number back into a location, for instance on this I would
do something like "((&cmap->red)+channel)[index]".
May want to add an alpha channel as well? Though I suspect most systems
doing direct color only have a single non-opaque color...
Now, 'colors' is malloc'd here. How does the caller of this function
know what to free? Freeing each of cmap->{red,blue,green,transp} would
lead to double-free errors.
> Right, you free only 'red'. But that's rather surprising.
Changing it to a single 2-d array would fix this mystery as well.
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel