[PATCH 2/2] wayland-util: Rename ARRAY_LENGTH -> __WL_ARRAY_LENGTH

Kristian Høgsberg krh at bitplanet.net
Thu Oct 18 13:48:03 PDT 2012


On Thu, Oct 18, 2012 at 4:27 PM, David Herrmann
<dh.herrmann at googlemail.com> wrote:
> Hi Chad
>
> On Thu, Oct 18, 2012 at 9:45 PM, Chad Versace
> <chad.versace at linux.intel.com> wrote:
>> On 10/18/2012 12:35 PM, Chad Versace wrote:
>>> On 10/18/2012 10:23 AM, Pekka Paalanen wrote:
>>>> On Thu, 18 Oct 2012 09:15:08 -0700
>>>> Chad Versace <chad.versace at linux.intel.com> wrote:
>>>>
>>>>> wayland-util.h defined an unprefixed macro, ARRAY_LENGTH, which polluted
>>>>> the global namespace. This caused symbol collisions in projects that
>>>>> defined ARRAY_LENGTH slightly differently.
>>>>>
>>>>> Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
>>>>
>>>> Hi Chad,
>>>>
>>>> do you have the weston patches to go with these?
>>>> I think Weston code heavily uses both the macros you replaced.
>>>
>>> No, I wasn't aware that the macros were used outside Wayland. The
>>> Weston patches coming soon.
>>
>> Hmm... I think the ARRAY_LENGTH needs to be revised. Since
>> wayland-util.h:ARRAY_LENGTH is used outside of Wayland, I think it should be
>> renamed to WL_ARRAY_LENGTH rather than __WL_ARRAY_LENGTH because
>> double-underscore symbols are typically private.
>>
>> Opinions?
>
> I think adding them to weston separately is ok. They are really not
> related to wayland at all so I don't understand why we should make it
> part of the libwayland API.

Yeah, that's better.  We can just move ARRAY_LENGTH to
wayland-private.h and redefine it in weston where we need it.  As for
container_of, we use it in the wl_list_foreach macros, so lets keep
that and call it wl_container_of so we don't have to worry about who
owns the __* namespace.

Kristian


More information about the wayland-devel mailing list