[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qom: fix cast results caching
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH] qom: fix cast results caching |
Date: |
Tue, 17 Dec 2013 19:40:17 +1000 |
On Tue, Dec 17, 2013 at 7:20 PM, Sergey Fedorov <address@hidden> wrote:
> A single cast cache is used for both an object casting and a class
> casting. In case of interface presence a class cast result may be not
> the same pointer as opposite to an object casting. So do not cache cast
> results for an object casting in a presence of interfaces.
>
I think this is fixed by my cast cache splitter patch which is
currently enqueued.
http://patchwork.ozlabs.org/patch/294766/
Regards,
Peter
> Signed-off-by: Sergey Fedorov <address@hidden>
> ---
> qom/object.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/qom/object.c b/qom/object.c
> index fc19cf6..f7384de 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -473,7 +473,7 @@ Object *object_dynamic_cast_assert(Object *obj, const
> char *typename,
>
> assert(obj == inst);
>
> - if (obj && obj == inst) {
> + if (obj && obj == inst && !obj->class->interfaces) {
> for (i = 1; i < OBJECT_CLASS_CAST_CACHE; i++) {
> obj->class->cast_cache[i - 1] = obj->class->cast_cache[i];
> }
> --
> 1.7.9.5
>
>