[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qom/object: add some interface asserts
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] qom/object: add some interface asserts |
Date: |
Tue, 18 Sep 2018 10:17:18 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 12/09/2018 14:53, Marc-André Lureau wrote:
> An interface can't have any instance size or callback, or itself
> implement other interfaces (this is unsupported).
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
> qom/object.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/qom/object.c b/qom/object.c
> index 75d1d48944..9222b23172 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -286,7 +286,14 @@ static void type_initialize(TypeImpl *ti)
> if (ti->instance_size == 0) {
> ti->abstract = true;
> }
> -
> + if (type_is_ancestor(ti, type_interface)) {
> + assert(ti->instance_size == 0);
> + assert(ti->abstract);
> + assert(!ti->instance_init);
> + assert(!ti->instance_post_init);
> + assert(!ti->instance_finalize);
> + assert(!ti->num_interfaces);
> + }
> ti->class = g_malloc0(ti->class_size);
>
> parent = type_get_parent(ti);
>
Queued, thanks.
Paolo