[Libvirt-cim] [PATCH] [RFC] Change interface of cu_return_instance{, name}s
Jay Gagnon
grendel at linux.vnet.ibm.com
Mon Nov 19 21:01:02 UTC 2007
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith <danms at us.ibm.com>
> # Date 1195505862 28800
> # Node ID f2c751be5069df9eb23a8bdbaafd5d55b3fd24e9
> # Parent 25497386647b6e757ed5c8893f2a4c648543829b
> [RFC] Change interface of cu_return_instance{,name}s
> to use instance lists instead of null-terminated arrays. These
> functions existed before we had instance lists, and need to be
> updated.
>
> This will require another wide-sweeping (but trivial) change to libvirt-cim
>
> Signed-off-by: Dan Smith <danms at us.ibm.com>
>
> diff -r 25497386647b -r f2c751be5069 instance_util.c
> --- a/instance_util.c Mon Nov 19 08:00:42 2007 -0800
> +++ b/instance_util.c Mon Nov 19 12:57:42 2007 -0800
> @@ -24,15 +24,15 @@
> #include "libcmpiutil.h"
>
> unsigned int cu_return_instances(const CMPIResult *results,
> - CMPIInstance ** const list)
> + const struct inst_list *list)
> {
> unsigned int i;
>
> if (list == NULL)
> return 0;
>
> - for (i = 0; list[i] != NULL; i++)
> - CMReturnInstance(results, list[i]);
> + for (i = 0; i < list->cur; i++)
> + CMReturnInstance(results, list->list[i]);
>
> return i;
> }
> @@ -54,19 +54,17 @@ bool cu_return_instance_name(const CMPIR
> }
>
> unsigned int cu_return_instance_names(const CMPIResult *results,
> - CMPIInstance ** const list)
> + const struct inst_list *list)
> {
> unsigned int i;
> - unsigned int c = 0;
>
> if (list == NULL)
> return 0;
>
> - for (i = 0; list[i] != NULL; i++)
> - if (cu_return_instance_name(results, list[i]))
> - c++;
> + for (i = 0; i < list->cur; i++)
> + cu_return_instance_name(results, list->list[i]);
>
> - return c;
> + return i;
> }
>
> static bool _compare_data(const CMPIData *a, const CMPIData *b)
> diff -r 25497386647b -r f2c751be5069 libcmpiutil.h
> --- a/libcmpiutil.h Mon Nov 19 08:00:42 2007 -0800
> +++ b/libcmpiutil.h Mon Nov 19 12:57:42 2007 -0800
> @@ -139,15 +139,18 @@ int cu_get_u16_path(const CMPIObjectPath
> const char *key,
> uint16_t *target);
>
> +/* Forward declaration */
> +struct inst_list;
> +
> /**
> * Return a list of instances
> *
> - * @param list A NULL-terminated list of instances
> * @param results The result list to populate
> + * @param list A list of instances to return
> * @returns The number of instances returned
> */
> unsigned int cu_return_instances(const CMPIResult *results,
> - CMPIInstance ** const list);
> + const struct inst_list *list);
>
> /**
> * Return an instance object path
> @@ -163,13 +166,12 @@ bool cu_return_instance_name(const CMPIR
> /**
> * Return the object paths of a list of instances
> *
> - * @param list A NULL-terminated list of instances
> * @param results The result list to populate
> - * @param op The object path
> + * @param list A list of instances to return (names of)
> * @returns The number of instance names returned
> */
> unsigned int cu_return_instance_names(const CMPIResult *results,
> - CMPIInstance ** const list);
> + const struct inst_list *list);
>
> /**
> * Get a string property of an instance
> diff -r 25497386647b -r f2c751be5069 std_association.c
> --- a/std_association.c Mon Nov 19 08:00:42 2007 -0800
> +++ b/std_association.c Mon Nov 19 12:57:42 2007 -0800
> @@ -217,9 +217,9 @@ static CMPIStatus do_assoc(struct std_as
> }
>
> if (names_only)
> - cu_return_instance_names(results, list.list);
> + cu_return_instance_names(results, &list);
> else
> - cu_return_instances(results, list.list);
> + cu_return_instances(results, &list);
>
> out:
> inst_list_free(&list);
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
--
-Jay
More information about the Libvirt-cim
mailing list