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: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180912125303.29158-1-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
dcf6760a64
commit
422ca1432f
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user