object_add: allow completion handler to get canonical path

Add object to /objects before calling user_creatable_complete()
handler, so that object might be able to call
object_get_canonical_path() in its completion handler.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
diff --git a/vl.c b/vl.c
index be69c7f..9ce65fc 100644
--- a/vl.c
+++ b/vl.c
@@ -2935,14 +2935,15 @@
         goto out;
     }
 
-    user_creatable_complete(obj, &local_err);
-    if (local_err) {
-        goto out;
-    }
-
     object_property_add_child(container_get(object_get_root(), "/objects"),
                               id, obj, &local_err);
 
+    user_creatable_complete(obj, &local_err);
+    if (local_err) {
+        object_property_del(container_get(object_get_root(), "/objects"),
+                            id, &error_abort);
+        goto out;
+    }
 out:
     object_unref(obj);
     if (local_err) {