Enums, bitfields and wl_arrays

Auke Booij auke at tulcod.com
Fri Oct 2 04:53:13 PDT 2015


On 1 October 2015 at 20:00, Nils Chr. Brause <nilschrbrause at gmail.com> wrote:
>> Since Auke's patchset proposalis the most recent, let's take that one as
>> the candidate for landing.  Gentlemen, I'd like to ask you to review
>> these three patches [5,6,7] and either give your Reviewed-by's or flag
>> specific improvements needed.  If you have a more conceptual
>> disagreement, and don't think the patchset is landable as implemented,
>> please raise that issue asap too.
>
> There are some enum attributes missing, namely:
> - wl_shm_pool::create_buffer::format (it's wl_shm::format)
> - wl_shell_surface::set_fullscreen::method (it's
> wl_shell_surface::fullscreen_method)
> - wl_surface::set_buffer_transform::transform (it's wl_output::transform)

wl_shell_surface::set_fullscreen::method is a mistake by me. You are
right, that should have been in there. The reason I left out the other
two is because of what you write here:

> I would prefer, if the enum attributes would also name the interface,
> where the enum can be found, e.g.:
>     <arg name="format" type="uint" enum="wl_shm.format"/>
> If two enums in different interfaces happen to have the same name (if
> that's possible?), this would lead to ambiguities otherwise. Also a
> scanner wouldn't have to look up the interface name that way.

While in principle I think this is a great idea, this will need a few
specifications, which is why I decided not to add those in just yet.
Are cross-XML references allowed in this sense? In that case, the
scanner cannot verify their correctness, since only the current XML
file is available to it. Additionally, moving a certain interface from
xdg_shell to the core wayland protocol would now mean potentially
having to weaken the type safety of an interface, or having to copy
the enum over.


More information about the wayland-devel mailing list