mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-27 17:30:11 +01:00
Avoid appending an empty slot to an user data array when user_data is NULL.
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. This issue probably happens since the commit http://cgit.freedesktop.org/cairo/commit/?id=9341c254a Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
This commit is contained in:
parent
89942c6af0
commit
040ae0ce19
1 changed files with 3 additions and 0 deletions
|
|
@ -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;
|
||||
|
||||
status = _cairo_array_append (array, &new_slot);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue