Re: [PATCH] Avoid appending an empty slot to an user data array when user_data is NULL.
Bryce Harrington <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Apr 17, 2015 at 04:33:35PM +0100, Chris Wilson wrote: > On Fri, Apr 17, 2015 at 08:59:17PM +0900, 江頭幸路 wrote: > > Otherwise, calling cairo_set_user_data(cr, key, 0, 0) many times > > causes a long user data array, almost all of whose slots are empty. > > It leads to unnecessarily much memory consumption and long execution time > > of > > cairo_set_user_data(cr, key, 0, 0) and cairo_get_user_data(cr, key) after > > it. > > --- > > src/cairo-array.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/src/cairo-array.c b/src/cairo-array.c > > index 4f3c082..58c9a38 100644 > > --- a/src/cairo-array.c > > +++ b/src/cairo-array.c > > @@ -485,6 +485,9 @@ _cairo_user_data_array_set_data > > (cairo_user_data_array_t *array, > > return CAIRO_STATUS_SUCCESS; > > } > > > > + if (user_data == NULL) > > + return CAIRO_STATUS_SUCCESS; > > Ok, I thought this might break a cairo_user_data_exists(), but since we > don't have one, this patch lgtm and doesn't seem to change the API. > -Chris Thanks, applied: 89942c6..040ae0c master -> master (I think something may have been off with the tabs or something, as it didn't apply directly; since the patch was trivial enough I just manually applied it.) Bryce > -- > Chris Wilson, Intel Open Source Technology Centre > -- > cairo mailing list > [email protected] > http://lists.cairographics.org/mailman/listinfo/cairo -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo