[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 2/2] qom/object.c: Allow itf cast with num_itfs =
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [PATCH v2 2/2] qom/object.c: Allow itf cast with num_itfs = 0 |
Date: |
Tue, 19 Feb 2013 14:02:10 +1000 |
num_interfaces only tells you how many interfaces the concrete child class has
(as defined in the TypeInfo). This means if you have a child class which defines
no interfaces of its own, but its parent has interfaces you cannot cast to those
parent interfaces.
Fixed changing the guard to check the class->interfaces list instead (which is
a complete flattened list of implemented interfaces).
Signed-off-by: Peter Crosthwaite <address@hidden>
---
changed from v1:
Change guard implementation rather than removed it (Paolo review)
qom/object.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index 4b72a64..3d638ff 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -449,7 +449,8 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *class,
TypeImpl *type = class->type;
ObjectClass *ret = NULL;
- if (type->num_interfaces && type_is_ancestor(target_type, type_interface))
{
+ if (type->class->interfaces &&
+ type_is_ancestor(target_type, type_interface)) {
int found = 0;
GSList *i;
--
1.7.0.4