[PATCH 2/3] Add an id field to outputs
Kristian Høgsberg
hoegsberg at gmail.com
Mon Apr 23 01:33:51 PDT 2012
No, just reality.
Kristian
On Mon, Apr 23, 2012 at 4:02 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> On Fri, 20 Apr 2012 13:16:27 -0400
> Kristian Hoegsberg <hoegsberg at gmail.com> wrote:
>
>> On Thu, Apr 19, 2012 at 10:50:08PM -0400, cdahlin at redhat.com wrote:
>> > From: Casey Dahlin <cdahlin at redhat.com>
>> >
>> > All outputs now have a unique integer ID, allocated from a bitfield pool in the
>> > compositor.
>>
>> Committed this one with a few edits as described below.
>>
>> > Signed-off-by: Casey Dahlin <cdahlin at redhat.com>
>> > ---
>> > src/compositor.c | 15 +++++++++++++++
>> > src/compositor.h | 4 ++++
>> > 2 files changed, 19 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/src/compositor.c b/src/compositor.c
>> > index 3065f81..798b1e1 100644
>> > --- a/src/compositor.c
>> > +++ b/src/compositor.c
>> > @@ -2303,6 +2303,17 @@ weston_output_move(struct weston_output *output, int x, int y)
>> > output->current->height);
>> > }
>> >
>> > +static void
>> > +output_allocate_id(struct weston_output *output)
>> > +{
>> > + output->id = 0;
>> > +
>> > + while ((1 << output->id) & output->compositor->output_id_pool)
>> > + output->id++;
>> > +
>> > + output->compositor->output_id_pool |= 1 << output->id;
>> > +}
>> > +
>>
>> We can just use ffs(~pool) - 1 to find the first available id here.
>> With that this function is down to just two lines so I folded it back
>> into weston_output_init.
>
> Hi,
>
> I see at least this patch in the weston repo does not detect running
> out of ids. When output_id_pool is full, you get ffs(0)-1 = -1, and...
> I guess the output_id using logic will fail. Was there something that
> prevents allocating too many outputs (apart from reality ;-)?
>
>
> Thanks,
> pq
More information about the wayland-devel
mailing list