[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v0 6/8] xilinx dont cast to interface types with l
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] [RFC v0 6/8] xilinx dont cast to interface types with links |
Date: |
Wed, 13 Jun 2012 13:55:45 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120605 Thunderbird/13.0 |
On 06/13/2012 01:41 PM, Paolo Bonzini wrote:
>
> However, something that _is_ bad indeed happens; we try to ref/unref an
> interface
> object. This patch fixes it while keeping things efficient (and in fact
> fixes one
> TODO). Can add a link to an image on http://wiki.qemu.org/Testing and/or
> test it?
>
> Anthony, is this above your disgust level?
>
> Paolo
>
>
> ------------------------ 8< -----------------------
>
> diff --git a/qom/object.c b/qom/object.c
> index c3a7a47..bd60838 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -63,7 +63,7 @@ struct TypeImpl
> InterfaceImpl interfaces[MAX_INTERFACES];
> };
>
> -#define INTERFACE(obj) INTERFACE_CHECK(obj, TYPE_INTERFACE)
> +#define INTERFACE(obj) ((Interface *)(obj))
>
> static Type type_interface;
>
> @@ -239,13 +239,21 @@ static void type_initialize(TypeImpl *ti)
> }
> }
>
> +#define INTERFACE_MAGIC ((GSList *) (intptr_t)0xBAD0BAD)
> +
> +static inline bool object_is_interface(Object *obj) {
> + return obj->interfaces == INTERFACE_MAGIC;
> +}
Why play games?
static GSList interface_magic;
static inline bool object_is_interface(Object *obj)
{
return obj->interfaces == &interface_magic;
}
though I think we can spare a bool (and developer's sanity) in Object.
--
error compiling committee.c: too many arguments to function
- [Qemu-devel] [RFC v0 0/8] QOMify AXI stream for Xilinx AXI ethernet/DMA, Peter A. G. Crosthwaite, 2012/06/13
- [Qemu-devel] [RFC v0 1/8] qom: revamp interfaces, Peter A. G. Crosthwaite, 2012/06/13
- [Qemu-devel] [RFC v0 2/8] xilinx: remove PROP_PTR properties, Peter A. G. Crosthwaite, 2012/06/13
- [Qemu-devel] [RFC v0 3/8] xilinx_axidma: Added missing TypeInfo, Peter A. G. Crosthwaite, 2012/06/13
- [Qemu-devel] [RFC v0 4/8] object: create default canonical paths for orphans, Peter A. G. Crosthwaite, 2012/06/13
- [Qemu-devel] [RFC v0 6/8] xilinx dont cast to interface types with links, Peter A. G. Crosthwaite, 2012/06/13
- Re: [Qemu-devel] [RFC v0 6/8] xilinx dont cast to interface types with links, Anthony Liguori, 2012/06/13
[Qemu-devel] [RFC v0 7/8] petalogix_ml605_mmu: fixed qdev create for dma, Peter A. G. Crosthwaite, 2012/06/13
[Qemu-devel] [RFC v0 8/8] axidma: renamed interconnect to axi-stream, Peter A. G. Crosthwaite, 2012/06/13
[Qemu-devel] [RFC v0 5/8] object: make interfaces concrete, Peter A. G. Crosthwaite, 2012/06/13