Re: [Qemu-devel] [PATCH qom-next] qom: Introduce object_property_is_{child, link}()

2012-05-28 Thread Paolo Bonzini
Il 27/05/2012 01:19, Andreas Färber ha scritto:
 Avoids hardcoding partial string comparisons.
 
 Signed-off-by: Alexander Barabash alexander_barab...@mentor.com
 Signed-off-by: Andreas Färber afaer...@suse.de
 ---
  qom/object.c |   22 --
  1 files changed, 16 insertions(+), 6 deletions(-)
 
 diff --git a/qom/object.c b/qom/object.c
 index 173835b..00bb3b0 100644
 --- a/qom/object.c
 +++ b/qom/object.c
 @@ -305,6 +305,16 @@ void object_initialize(void *data, const char *typename)
  object_initialize_with_type(data, type);
  }
  
 +static inline bool object_property_is_child(ObjectProperty *prop)
 +{
 +return strstart(prop-type, child, NULL);
 +}
 +
 +static inline bool object_property_is_link(ObjectProperty *prop)
 +{
 +return strstart(prop-type, link, NULL);
 +}
 +
  static void object_property_del_all(Object *obj)
  {
  while (!QTAILQ_EMPTY(obj-properties)) {
 @@ -327,7 +337,7 @@ static void object_property_del_child(Object *obj, Object 
 *child, Error **errp)
  ObjectProperty *prop;
  
  QTAILQ_FOREACH(prop, obj-properties, node) {
 -if (strstart(prop-type, child, NULL)  prop-opaque == child) {
 +if (object_property_is_child(prop)  prop-opaque == child) {
  object_property_del(obj, prop-name, errp);
  break;
  }
 @@ -600,7 +610,7 @@ int object_child_foreach(Object *obj, int (*fn)(Object 
 *child, void *opaque),
  int ret = 0;
  
  QTAILQ_FOREACH(prop, obj-properties, node) {
 -if (strstart(prop-type, child, NULL)) {
 +if (object_property_is_child(prop)) {
  ret = fn(prop-opaque, opaque);
  if (ret != 0) {
  break;
 @@ -1022,7 +1032,7 @@ gchar *object_get_canonical_path(Object *obj)
  g_assert(obj-parent != NULL);
  
  QTAILQ_FOREACH(prop, obj-parent-properties, node) {
 -if (!strstart(prop-type, child, NULL)) {
 +if (!object_property_is_child(prop)) {
  continue;
  }
  
 @@ -1056,9 +1066,9 @@ Object *object_resolve_path_component(Object *parent, 
 gchar *part)
  return NULL;
  }
  
 -if (strstart(prop-type, link, NULL)) {
 +if (object_property_is_link(prop)) {
  return *(Object **)prop-opaque;
 -} else if (strstart(prop-type, child, NULL)) {
 +} else if (object_property_is_child(prop)) {
  return prop-opaque;
  } else {
  return NULL;
 @@ -1101,7 +,7 @@ static Object *object_resolve_partial_path(Object 
 *parent,
  QTAILQ_FOREACH(prop, parent-properties, node) {
  Object *found;
  
 -if (!strstart(prop-type, child, NULL)) {
 +if (!object_property_is_child(prop)) {
  continue;
  }
  

Reviewed-by: Paolo Bonzini pbonz...@redhat.com

Paolo



Re: [Qemu-devel] [PATCH qom-next] qom: Introduce object_property_is_{child, link}()

2012-05-28 Thread Andreas Färber
Am 28.05.2012 08:47, schrieb Paolo Bonzini:
 Il 27/05/2012 01:19, Andreas Färber ha scritto:
 Avoids hardcoding partial string comparisons.

 Signed-off-by: Alexander Barabash alexander_barab...@mentor.com
 Signed-off-by: Andreas Färber afaer...@suse.de
[...]
 Reviewed-by: Paolo Bonzini pbonz...@redhat.com

Thanks, applied to qom-next:
http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next

/-F

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



[Qemu-devel] [PATCH qom-next] qom: Introduce object_property_is_{child, link}()

2012-05-26 Thread Andreas Färber
Avoids hardcoding partial string comparisons.

Signed-off-by: Alexander Barabash alexander_barab...@mentor.com
Signed-off-by: Andreas Färber afaer...@suse.de
---
 qom/object.c |   22 --
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/qom/object.c b/qom/object.c
index 173835b..00bb3b0 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -305,6 +305,16 @@ void object_initialize(void *data, const char *typename)
 object_initialize_with_type(data, type);
 }
 
+static inline bool object_property_is_child(ObjectProperty *prop)
+{
+return strstart(prop-type, child, NULL);
+}
+
+static inline bool object_property_is_link(ObjectProperty *prop)
+{
+return strstart(prop-type, link, NULL);
+}
+
 static void object_property_del_all(Object *obj)
 {
 while (!QTAILQ_EMPTY(obj-properties)) {
@@ -327,7 +337,7 @@ static void object_property_del_child(Object *obj, Object 
*child, Error **errp)
 ObjectProperty *prop;
 
 QTAILQ_FOREACH(prop, obj-properties, node) {
-if (strstart(prop-type, child, NULL)  prop-opaque == child) {
+if (object_property_is_child(prop)  prop-opaque == child) {
 object_property_del(obj, prop-name, errp);
 break;
 }
@@ -600,7 +610,7 @@ int object_child_foreach(Object *obj, int (*fn)(Object 
*child, void *opaque),
 int ret = 0;
 
 QTAILQ_FOREACH(prop, obj-properties, node) {
-if (strstart(prop-type, child, NULL)) {
+if (object_property_is_child(prop)) {
 ret = fn(prop-opaque, opaque);
 if (ret != 0) {
 break;
@@ -1022,7 +1032,7 @@ gchar *object_get_canonical_path(Object *obj)
 g_assert(obj-parent != NULL);
 
 QTAILQ_FOREACH(prop, obj-parent-properties, node) {
-if (!strstart(prop-type, child, NULL)) {
+if (!object_property_is_child(prop)) {
 continue;
 }
 
@@ -1056,9 +1066,9 @@ Object *object_resolve_path_component(Object *parent, 
gchar *part)
 return NULL;
 }
 
-if (strstart(prop-type, link, NULL)) {
+if (object_property_is_link(prop)) {
 return *(Object **)prop-opaque;
-} else if (strstart(prop-type, child, NULL)) {
+} else if (object_property_is_child(prop)) {
 return prop-opaque;
 } else {
 return NULL;
@@ -1101,7 +,7 @@ static Object *object_resolve_partial_path(Object *parent,
 QTAILQ_FOREACH(prop, parent-properties, node) {
 Object *found;
 
-if (!strstart(prop-type, child, NULL)) {
+if (!object_property_is_child(prop)) {
 continue;
 }
 
-- 
1.7.7