|
@@ -20,6 +20,7 @@
|
|
|
#include "qapi/string-input-visitor.h"
|
|
|
#include "qapi/string-output-visitor.h"
|
|
|
#include "qapi/qobject-input-visitor.h"
|
|
|
+#include "qapi/forward-visitor.h"
|
|
|
#include "qapi/qapi-builtin-visit.h"
|
|
|
#include "qapi/qmp/qerror.h"
|
|
|
#include "qapi/qmp/qjson.h"
|
|
@@ -2683,16 +2684,20 @@ static void property_get_alias(Object *obj, Visitor *v, const char *name,
|
|
|
void *opaque, Error **errp)
|
|
|
{
|
|
|
AliasProperty *prop = opaque;
|
|
|
+ Visitor *alias_v = visitor_forward_field(v, prop->target_name, name);
|
|
|
|
|
|
- object_property_get(prop->target_obj, prop->target_name, v, errp);
|
|
|
+ object_property_get(prop->target_obj, prop->target_name, alias_v, errp);
|
|
|
+ visit_free(alias_v);
|
|
|
}
|
|
|
|
|
|
static void property_set_alias(Object *obj, Visitor *v, const char *name,
|
|
|
void *opaque, Error **errp)
|
|
|
{
|
|
|
AliasProperty *prop = opaque;
|
|
|
+ Visitor *alias_v = visitor_forward_field(v, prop->target_name, name);
|
|
|
|
|
|
- object_property_set(prop->target_obj, prop->target_name, v, errp);
|
|
|
+ object_property_set(prop->target_obj, prop->target_name, alias_v, errp);
|
|
|
+ visit_free(alias_v);
|
|
|
}
|
|
|
|
|
|
static Object *property_resolve_alias(Object *obj, void *opaque,
|