vega: fix for object handle leak

frees the object handle when a OpenVG
is destroyed.

Signed-off-by: Andreas Pokorny <andreas.pokorny@elektrobit.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Andreas Pokorny 2012-12-15 23:28:57 +01:00 committed by Brian Paul
parent 9b13e731fa
commit fd65fb5aa8
4 changed files with 8 additions and 1 deletions

View file

@ -376,6 +376,7 @@ void mask_layer_destroy(struct vg_mask_layer *layer)
vg_context_remove_object(ctx, &layer->base);
pipe_sampler_view_reference(&layer->sampler_view, NULL);
vg_free_object(&layer->base);
FREE(layer);
}

View file

@ -229,8 +229,10 @@ void paint_destroy(struct vg_paint *paint)
pipe_sampler_view_reference(&paint->gradient.sampler_view, NULL);
if (paint->pattern.sampler_view)
pipe_sampler_view_reference(&paint->pattern.sampler_view, NULL);
if (ctx)
if (ctx) {
vg_context_remove_object(ctx, &paint->base);
vg_free_object(&paint->base);
}
free(paint->gradient.ramp_stopsi);
free(paint->gradient.ramp_stops);

View file

@ -234,6 +234,8 @@ void path_destroy(struct path *p)
if (p->stroked.path)
path_destroy(p->stroked.path);
vg_free_object(&p->base);
FREE(p);
}

View file

@ -157,6 +157,8 @@ void font_destroy(struct vg_font *font)
}
cso_hash_delete(font->glyphs);
vg_free_object(&font->base);
FREE(font);
}