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

Reply via email to