[Xcb] about api changes

Thomas Hunger hto at arcor.de
Sat Jun 9 05:46:02 PDT 2007


> - For elements which occupy adjacent memory positions you have two
> functions - for example "xcb_visualtype_t *xcb_depth_visuals(...)"
> and "int xcb_depth_visuals_length(...)". To get to the next element
> you simply increment the pointer.

As you wrote the functions are:

  xcb_visualtype_t *
  xcb_depth_visuals (const xcb_depth_t *R);

and

  xcb_visualtype_iterator_t
  xcb_depth_visuals_iterator (const xcb_depth_t *R);

If I understand you correctly then you would remove the last function. 
The last function is needed internally though, so it cannot be 
removed but could be made private. I am not so sure anymore that this 
is sensible. First, if it is documented properly that there are two 
ways to access there should be no confusion. 

Second, it makes the API more consistent. Every list with a type that 
has an iterator can be asked for that iterator. Removing the last 
function would remove that feature and the user would need to know if 
the type is memory-adjacent or not.

So I believe we should keep the current API.


More information about the Xcb mailing list