qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] DO_UPCAST confusion


From: Eric Blake
Subject: Re: [Qemu-devel] DO_UPCAST confusion
Date: Thu, 22 Oct 2015 07:55:11 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 10/22/2015 06:00 AM, Markus Armbruster wrote:
> Peter Maydell <address@hidden> writes:
> 
>> On 21 October 2015 at 23:49, Eric Blake <address@hidden> wrote:
>>> I much prefer the name container_of() (which is a bit more obvious that
>>> it is finding the container or derived type that embeds the parent
>>> type), but if we have to keep the ugly name, could we at least clean up
>>> the comment to make sense, and fix the name to be DO_DOWNCAST to match
>>> what it is actually doing?
> 
> DO_UPCAST() needs deletion, not renaming.
> 
>> You can't call this one container_of, because it's doing
>> container_of plus extra checking.
>>

The only extra checking is that the derived class has the parent class
as its first member.

> Any DO_UPCAST() that have crept into other code could be simply replaced
> by container_of().  If we want to keep the extra checking Peter
> mentioned, we could have a container_of_checked() or something.  *Not* a
> renamed DO_UPCAST(), because DO_UPCAST() pointlessly takes its arguments
> in a different order than container_of().

Or maybe container_of_first(), to make it obvious that the parent class
is the first member.

But how often does it really matter whether the container of the parent
class had the parent as the first member?  I guess we'll find out as we
try to nuke DO_UPCAST.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]