[HarfBuzz] [PATCH] Avoid font fallback with CoreText shaper

Behdad Esfahbod behdad at behdad.org
Fri Nov 29 15:19:36 PST 2013


Shouldn't we CFRelease these:

+    CTFontRef run_ct_font = static_cast<CTFontRef>(CFDictionaryGetValue
(attributes, kCTFontAttributeName));
+    CGFontRef run_cg_font = CTFontCopyGraphicsFont (run_ct_font, 0);
+    CGFontRef cg_font = CTFontCopyGraphicsFont (font_data->ct_font, 0);


On 13-11-29 06:01 PM, Khaled Hosny wrote:
> On Fri, Nov 29, 2013 at 05:38:06PM -0500, Behdad Esfahbod wrote:
>> On 13-11-29 05:10 PM, Khaled Hosny wrote:
>>> We should compare the CGFont's then. Updated patch attached.
>>
>> Ok, I just studied this.  I think the work should be done at the very
>> beginning of the look (line 653), 
> 
> It had to be after the CTRunGetStringIndices() call, but the reworked
> patch does not need this, so I moved it up now.
> 
>> and produce one notdef per input character.  The number of glyphs in
>> the current run is dependent on the chosen fallback font and not what
>> we should be using.
> 
> Right, I overlooked that.
> 
> Regards,
> Khaled
> 
> 
>> I can rework this myself eventually, but don't have my Mac around right now.
>> Feel free to send an updated patch though.
>>
>> Thanks,
>> behdad
>>
>>
>>> Regards,
>>> Khaled
>>>
>>> On Fri, Nov 29, 2013 at 03:13:19PM -0500, Behdad Esfahbod wrote:
>>>> Your patch doesn't work with user features.  For each user feature we use a
>>>> sub-font of ct_font:
>>>>
>>>>   range->font = CTFontCreateCopyWithAttributes (font_data->ct_font, 0.0, NULL,
>>>> font_desc);
>>>>
>>>>
>>>> On 13-11-25 08:42 AM, Khaled Hosny wrote:
>>>>> Resending a patch that actually applies!
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> HarfBuzz mailing list
>>>>> HarfBuzz at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/harfbuzz
>>>>>
>>>>
>>>> -- 
>>>> behdad
>>>> http://behdad.org/
>>
>> -- 
>> behdad
>> http://behdad.org/

-- 
behdad
http://behdad.org/



More information about the HarfBuzz mailing list