mirror of https://github.com/xemu-project/xemu.git
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) {
|
if (ti->instance_size == 0) {
|
||||||
ti->abstract = true;
|
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);
|
ti->class = g_malloc0(ti->class_size);
|
||||||
|
|
||||||
parent = type_get_parent(ti);
|
parent = type_get_parent(ti);
|
||||||
|
|
Loading…
Reference in New Issue