qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 11/27] qom: fix canonical paths vs. interface


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH v2 11/27] qom: fix canonical paths vs. interfaces
Date: Mon, 06 Feb 2012 08:24:55 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110922 Lightning/1.0b2 Thunderbird/3.1.15

On 02/04/2012 02:02 AM, Paolo Bonzini wrote:
Signed-off-by: Paolo Bonzini<address@hidden>

Reviewed-by: Anthony Liguori <address@hidden>

Regards,

Anthony Liguori

---
  qom/object.c |   10 ++++++++++
  1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/qom/object.c b/qom/object.c
index 75be582..e8418bc 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -819,6 +819,12 @@ void object_property_add_child(Object *obj, const char 
*name,
  {
      gchar *type;

+    /* Registering an interface object in the composition tree will mightily
+     * confuse object_get_canonical_path (which, on the other hand, knows how
+     * to get the canonical path of an interface object).
+     */
+    assert(!object_is_type(obj, type_interface));
+
      type = g_strdup_printf("child<%s>", object_get_typename(OBJECT(child)));

      object_property_add(obj, name, type, object_get_child_property,
@@ -912,6 +918,10 @@ gchar *object_get_canonical_path(Object *obj)
      Object *root = object_get_root();
      char *newpath = NULL, *path = NULL;

+    if (object_is_type(obj, type_interface)) {
+        obj = INTERFACE(obj)->obj;
+    }
+
      while (obj != root) {
          ObjectProperty *prop = NULL;





reply via email to

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