From: Marc-André Lureau <marcandre.lur...@redhat.com> An interface can't have any instance size or callback, or itself implement other interfaces (this is unsupported).
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> Message-Id: <20180912125303.29158-1-marcandre.lur...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- qom/object.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/qom/object.c b/qom/object.c index 75d1d48..9222b23 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); -- 1.8.3.1