[cairo] [PATCH 2/4] scaled fonts: Use wide enough type for pointer arithmetic
Uli Schlachter
psychon at znc.in
Sun Feb 21 15:05:19 UTC 2016
Am 20.02.2016 um 23:49 schrieb Adrian Johnson:
> On 12/02/16 10:19, Simon Richter wrote:
>> Hi,
>>
>> On 11.02.2016 21:00, Uli Schlachter wrote:
>>
>>> Where is this cast back to a pointer that you talk about?
>>
>> There are two instances in cairo-scaled-font.c, in lines 480 and 2827.
>> Both of them read
>>
>> scaled_font = (cairo_scaled_font_t *) page->cache_entry.hash;
>>
>> and the pointer is dereferenced afterwards.
>>
>> I agree with your assessment that this should really be a hash value
>> only, and using the lower bits might work for that (although the
>> bottommost bits are probably all zero due to alignment, so it is not a
>> very good hash), but fixing that requires more changes.
>>
>> Simon
>
> Attached is a patch to avoid storing the pointer in the hash value.
Thanks! This looks fine to me (count this as a R-b if one is needed and no one
else dares).
And just for reference, apparently this was introduced in the following commit
(before it there was a cairo_scaled_glyph_page_key_t containing a
cairo_cache_entry_t and a cairo_scaled_font_t*):
commit 9c80392ac415e7f07c71261d280ac4376d3c8471
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Mon Mar 16 19:31:38 2009 +0000
[scaled-font] Lean and mean global glyph cache.
Cheers,
Uli
--
“Some people are worth melting for.” - Olaf
More information about the cairo
mailing list