From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42542) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rt5LA-0005oW-K0 for qemu-devel@nongnu.org; Thu, 02 Feb 2012 17:41:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rt5L9-0001re-Hj for qemu-devel@nongnu.org; Thu, 02 Feb 2012 17:41:16 -0500 Received: from cantor2.suse.de ([195.135.220.15]:46657 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rt5L9-0001rY-6V for qemu-devel@nongnu.org; Thu, 02 Feb 2012 17:41:15 -0500 Message-ID: <4F2B1079.2050104@suse.de> Date: Thu, 02 Feb 2012 23:38:49 +0100 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1328201142-26145-1-git-send-email-pbonzini@redhat.com> <1328201142-26145-8-git-send-email-pbonzini@redhat.com> In-Reply-To: <1328201142-26145-8-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 07/16] qdev: allow reusing get/set for legacy property List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org Am 02.02.2012 17:45, schrieb Paolo Bonzini: > In some cases, a legacy property does need a special print method > but not a special parse method. In this case, we can reuse the get/set > from the static (non-legacy) property. >=20 > If neither parse nor print is needed, though, do not register the > legacy property at all. The previous patch ensures that the right > fallback will be used. >=20 > Signed-off-by: Paolo Bonzini > --- > hw/qdev-monitor.c | 5 ++--- > hw/qdev-properties.c | 6 +++--- > hw/qdev.c | 11 +++++++---- > 3 files changed, 12 insertions(+), 10 deletions(-) >=20 > diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c > index 64505b4..e21bd50 100644 > --- a/hw/qdev-monitor.c > +++ b/hw/qdev-monitor.c > @@ -489,8 +489,8 @@ static void qdev_print_props(Monitor *mon, DeviceSt= ate *dev, Property *props, > { > if (!props) > return; > - while (props->name) { > - Error *err; > + for (; props->name; props++) { > + Error *err =3D NULL; Do either of these fix a bug? Should be mentioned or avoided. > char *value; > char *legacy_name =3D g_strdup_printf("legacy-%s", props->name= ); > if (object_property_get_type(OBJECT(dev), legacy_name, NULL)) = { > @@ -507,7 +507,6 @@ static void qdev_print_props(Monitor *mon, DeviceSt= ate *dev, Property *props, > qdev_printf("%s-prop: %s =3D %s\n", prefix, props->name, > value && *value ? value : ""); > g_free(value); > - props++; > } > } > =20 > diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c > index 7c41140..16f9b22 100644 > --- a/hw/qdev-properties.c > +++ b/hw/qdev-properties.c > @@ -1025,13 +1025,13 @@ void error_set_from_qdev_prop_error(Error **err= p, int ret, DeviceState *dev, > int qdev_prop_parse(DeviceState *dev, const char *name, const char *va= lue) > { > char *legacy_name; > - Error *err; > + Error *err =3D NULL; > =20 > legacy_name =3D g_strdup_printf("legacy-%s", name); > if (object_property_get_type(OBJECT(dev), legacy_name, NULL)) { > - object_property_set_str(OBJECT(dev), legacy_name, value, &err)= ; > + object_property_set_str(OBJECT(dev), value, legacy_name, &err)= ; > } else { > - object_property_set_str(OBJECT(dev), name, value, &err); > + object_property_set_str(OBJECT(dev), value, name, &err); > } Bugfix? > g_free(legacy_name); > =20 Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg