|
@@ -114,7 +114,7 @@ Object *user_creatable_add_opts(QemuOpts *opts, Error **errp)
|
|
QDict *pdict;
|
|
QDict *pdict;
|
|
Object *obj;
|
|
Object *obj;
|
|
const char *id = qemu_opts_id(opts);
|
|
const char *id = qemu_opts_id(opts);
|
|
- const char *type = qemu_opt_get(opts, "qom-type");
|
|
|
|
|
|
+ char *type = qemu_opt_get_del(opts, "qom-type");
|
|
|
|
|
|
if (!type) {
|
|
if (!type) {
|
|
error_setg(errp, QERR_MISSING_PARAMETER, "qom-type");
|
|
error_setg(errp, QERR_MISSING_PARAMETER, "qom-type");
|
|
@@ -122,17 +122,19 @@ Object *user_creatable_add_opts(QemuOpts *opts, Error **errp)
|
|
}
|
|
}
|
|
if (!id) {
|
|
if (!id) {
|
|
error_setg(errp, QERR_MISSING_PARAMETER, "id");
|
|
error_setg(errp, QERR_MISSING_PARAMETER, "id");
|
|
|
|
+ g_free(type);
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ qemu_opts_set_id(opts, NULL);
|
|
pdict = qemu_opts_to_qdict(opts, NULL);
|
|
pdict = qemu_opts_to_qdict(opts, NULL);
|
|
- qdict_del(pdict, "qom-type");
|
|
|
|
- qdict_del(pdict, "id");
|
|
|
|
|
|
|
|
v = opts_visitor_new(opts);
|
|
v = opts_visitor_new(opts);
|
|
obj = user_creatable_add_type(type, id, pdict, v, errp);
|
|
obj = user_creatable_add_type(type, id, pdict, v, errp);
|
|
visit_free(v);
|
|
visit_free(v);
|
|
|
|
|
|
|
|
+ qemu_opts_set_id(opts, (char *) id);
|
|
|
|
+ g_free(type);
|
|
QDECREF(pdict);
|
|
QDECREF(pdict);
|
|
return obj;
|
|
return obj;
|
|
}
|
|
}
|