Commit 422ca143 authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Paolo Bonzini
Browse files

qom/object: add some interface asserts



An interface can't have any instance size or callback, or itself
implement other interfaces (this is unsupported).

Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20180912125303.29158-1-marcandre.lureau@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent dcf6760a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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);