Am 18.12.2012 13:41, schrieb Vasilis Liaskovitis:
> Currently visit_type_size checks if the visitor's type_size function pointer is
> NULL. If not, it calls it, otherwise it calls v->type_uint64(). But neither of
> these pointers are ever set. Fallback to calling v->type_int() in this third
> (default) case.
>
> Signed-off-by: Vasilis Liaskovitis <vasilis.liaskovitis(a)profitbricks.com>
Is this patch still needed? I thought size -> int fallback was fixed
differently for the deallocation visitor...
Anyway, someone (Anthony?) recently suggested to drop the size visitor
completely in favor of string type (cf. frequency visitor discussion).
Regards,
Andreas
> ---
> qapi/qapi-visit-core.c | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/qapi/qapi-visit-core.c b/qapi/qapi-visit-core.c
> index 7a82b63..497e693 100644
> --- a/qapi/qapi-visit-core.c
> +++ b/qapi/qapi-visit-core.c
> @@ -236,8 +236,17 @@ void visit_type_int64(Visitor *v, int64_t *obj, const char *name, Error **errp)
>
> void visit_type_size(Visitor *v, uint64_t *obj, const char *name, Error **errp)
> {
> + int64_t value;
> if (!error_is_set(errp)) {
> - (v->type_size ? v->type_size : v->type_uint64)(v, obj, name, errp);
> + if (v->type_size) {
> + v->type_size(v, obj, name, errp);
> + } else if (v->type_uint64) {
> + v->type_uint64(v, obj, name, errp);
> + } else {
> + value = *obj;
> + v->type_int(v, &value, name, errp);
> + *obj = value;
> + }
> }
> }
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg