Re: [PATCH] Avoid appending an empty slot to an user data array when user_data is NULL.

Chris Wilson <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
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

-- 
Chris Wilson, Intel Open Source Technology Centre
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.