[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] qom/object: add some interface asserts
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH] qom/object: add some interface asserts |
Date: |
Wed, 12 Sep 2018 16:53:03 +0400 |
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);
--
2.19.0.rc1
- [Qemu-devel] [PATCH] qom/object: add some interface asserts,
Marc-André Lureau <=