qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]