Objects that define interface delegate the creation of the interface object to the interface type. These means that object_new() when called recursively by the interface instantior is going to bork because its trying to instantiate an abstract type. Fixed by making interface types concrete.
Signed-off-by: Peter A. G. Crosthwaite <[email protected]> --- qom/object.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/qom/object.c b/qom/object.c index 1eba795..c3a7a47 100644 --- a/qom/object.c +++ b/qom/object.c @@ -191,7 +191,7 @@ static void type_class_interface_init(TypeImpl *ti, InterfaceImpl *iface) .parent = iface->parent, .class_size = sizeof(InterfaceClass), .class_init = iface->interface_initfn, - .abstract = true, + .abstract = false, }; char *name = g_strdup_printf("<%s::%s>", ti->name, iface->parent); -- 1.7.3.2
