[Fontconfig] reminder: 2.11.0 to be released in next week

Raimund Steger rs at mytum.de
Fri Aug 23 13:47:08 PDT 2013


Akira TAGOH wrote:
> Gotcha. should be fixed in git now.

There seems to be no update in master... is it on another branch?

Anyway, here's some local variables from yesterday's core:

t at 1 (l at 1) program terminated by signal SEGV (no mapping at the fault 
address)
Current function is FcConfigAdd
  1367           sameBinding = position->binding;
(dbx) up
Current function is FcConfigSubstituteWithPat
  1660                           FcConfigAdd (&elt[object]->values, 
thisValue, FcTrue, l, r->u.edit->object);
(dbx) print config->maxObjects, object, nobjs, r->u.edit->object
config->maxObjects = 2
object = 50
nobjs = 50
r->u.edit->object = 1050
(dbx)

-Raimund





>
> On Fri, Aug 23, 2013 at 5:01 PM, Akira TAGOH <akira at tagoh.org> wrote:
>> Strange. that works for me.
>>
>> What's config->maxObjects?
>>
>> On Fri, Aug 23, 2013 at 6:51 AM, Raimund Steger <rs at mytum.de> wrote:
>>> Akira TAGOH wrote:
>>>>
>>>> Thanks for testing. that should works now...
>>>
>>>
>>> Confirmed.
>>>
>>> However, I get occasional coredumps.
>>>
>>> Using the snippet:
>>>
>>> <match target="font">
>>>    <test name="family"><string>Bitstream Vera Sans</string></test>
>>>    <edit name="BitstreamVeraSans1"><bool>true</bool></edit>
>>> </match>
>>> <match target="font">
>>>    <test name="family"><string>Bitstream Vera Sans</string></test>
>>>    <edit name="BitstreamVeraSans2"><bool>true</bool></edit>
>>> </match>
>>> <match target="font">
>>>    <test name="family"><string>Bitstream Vera Sans</string></test>
>>>    <edit name="BitstreamVeraSans3"><bool>true</bool></edit>
>>> </match>
>>> <match target="font">
>>>    <test name="family"><string>Bitstream Vera Sans</string></test>
>>>    <edit name="BitstreamVeraSans4"><bool>true</bool></edit>
>>> </match>
>>> <match target="font">
>>>    <test name="family"><string>Bitstream Vera Sans</string></test>
>>>    <edit name="BitstreamVeraSans5"><bool>true</bool></edit>
>>> </match>
>>>
>>>
>>> and executing fc-match several times in a row, i. e.
>>>
>>> bash-4.1$ (set -e;for i in {1..200};do fc-match "Bitstream Vera Sans";done)
>>>
>>>
>>> pretty reproducibly creates coredumps.
>>>
>>> In the debugger:
>>>
>>> t at 1 (l at 1) program terminated by signal SEGV (no mapping at the fault
>>> address)
>>> Current function is FcConfigAdd
>>>   1367           sameBinding = position->binding;
>>> (dbx) where
>>> current thread: t at 1
>>> =>[1] FcConfigAdd(head = 0xe4, position = 0x28, append = 1, new = 0x8068648,
>>> object = 1050), line 1367 in "fccfg.c"
>>>    [2] FcConfigSubstituteWithPat(config = 0x8062ee8, p = 0x8065ff0, p_pat =
>>> 0x8062860, kind = FcMatchFont), line 1660 in "fccfg.c"
>>>    [3] FcFontRenderPrepare(config = 0x8062ee8, pat = 0x8062860, font =
>>> 0xfe1f0088), line 578 in "fcmatch.c"
>>>    [4] FcFontMatch(config = 0x8062ee8, p = 0x8062860, result = 0xfeffe460),
>>> line 712 in "fcmatch.c"
>>>    [5] main(argc = 3, argv = 0xfeffe4b8), line 192 in "fc-match.c"
>>> (dbx)
>>>
>>>
>>>
>>> -Raimund
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>
>>>> On Mon, Aug 5, 2013 at 7:32 AM, Raimund Steger <rs at mytum.de> wrote:
>>>>>
>>>>> Akira TAGOH wrote:
>>>>>>
>>>>>>
>>>>>> That should works as expected now. please test as well as usual
>>>>>> matching rule since the logic was somewhat rewritten.
>>>>>
>>>>>
>>>>>
>>>>> There seems to be a regression.
>>>>>
>>>>> When testing the following rule:
>>>>>
>>>>> <match target="pattern">
>>>>>     <test name="family"><string>testfamily2</string></test>
>>>>>     <test name="pixelsize" compare="less"
>>>>> qual="all"><double>100</double></test>
>>>>>     <edit name="family"
>>>>> mode="append"><string>testfamily2_append</string></edit>
>>>>> </match>
>>>>>
>>>>> with
>>>>>
>>>>> FC_DEBUG=1 fc-match testfamily2 |grep family:
>>>>>
>>>>>
>>>>> the <edit> is applied at the wrong position, i. e. the position of the
>>>>> 'family' match isn't retained if another <test> is inbetween.
>>>>>
>>>>> Raimund
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> On Mon, Jun 17, 2013 at 9:25 PM, Raimund Steger <rs at mytum.de> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>
>>>>>>> On Tue, June 11, 2013 09:59, Akira TAGOH wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> If there are not anything else we want to fix before releasing 2.11.0,
>>>>>>>> please follow up on this mail otherwise I'll make one next week.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Sorry- I know I should have tested this a lot earlier, but the
>>>>>>> implementation of https://bugs.freedesktop.org/show_bug.cgi?id=59385
>>>>>>> (intermixed <test> and <edit> elements in <match>,
>>>>>>>
>>>>>>>
>>>>>>> http://cgit.freedesktop.org/fontconfig/commit/?id=d26fb23c41abd87422778bb38eea39f25ba3dc4a)
>>>>>>> does not seem to exactly match Behdad's suggestion from his initial
>>>>>>> mail:
>>>>>>>
>>>>>>> http://thread.gmane.org/gmane.comp.fonts.fontconfig/4607
>>>>>>>
>>>>>>> The suggestion in the mail is that:
>>>>>>>
>>>>>>>      <match>
>>>>>>>        <test1>
>>>>>>>        <edit1>
>>>>>>>        <test2>
>>>>>>>        <edit2>
>>>>>>>      </match>
>>>>>>>
>>>>>>> is a shortcut for:
>>>>>>>
>>>>>>>      <match>
>>>>>>>        <test1>
>>>>>>>        <edit1>
>>>>>>>      </match>
>>>>>>>      <match>
>>>>>>>        <test1>
>>>>>>>        <test2>
>>>>>>>        <edit2>
>>>>>>>      </match>
>>>>>>>
>>>>>>> i. e., test2 is only evaluated if test1 was successful.
>>>>>>>
>>>>>>> However the current implementation in head seems to generate two
>>>>>>> unrelated
>>>>>>> rules.
>>>>>>>
>>>>>>> If I make an example configuration like this:
>>>>>>>
>>>>>>>      <match target="pattern">
>>>>>>>        <test name="family"
>>>>>>> qual="first"><string>Helvetica</string></test>
>>>>>>>        <edit name="family" mode="append"><string>Helvetica LT
>>>>>>> Std</string></edit>
>>>>>>>        <test name="pixelsize" compare="less"><double>12</double></test>
>>>>>>>        <edit name="family" mode="prepend"><string>Lucida
>>>>>>> Sans</string></edit>
>>>>>>>      </match>
>>>>>>>
>>>>>>> so that Helvetica LT Std is always acceptable for Helvetica, but below
>>>>>>> 12px Lucida Sans is preferred for the family, fontconfig instead
>>>>>>> prepends
>>>>>>> "Lucida Sans" to all patterns with a pixelsize below 12. So I'd have to
>>>>>>> write
>>>>>>>
>>>>>>>      <match target="pattern">
>>>>>>>        <test name="family"
>>>>>>> qual="first"><string>Helvetica</string></test>
>>>>>>>        <edit name="family" mode="append"><string>Helvetica LT
>>>>>>> Std</string></edit>
>>>>>>>        <test name="family"
>>>>>>> qual="first"><string>Helvetica</string></test>
>>>>>>>        <test name="pixelsize" compare="less"><double>12</double></test>
>>>>>>>        <edit name="family" mode="prepend"
>>>>>>> binding="strong"><string>Lucida
>>>>>>> Sans</string></edit>
>>>>>>>      </match>
>>>>>>>
>>>>>>> instead.
>>>>>>>
>>>>>>> (Given I haven't made an error in my test) it's probably still an
>>>>>>> improvement over 2.10 though.
>>>>>>>
>>>>>>>
>>>>>>> Raimund
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Worringer Str 31 Duesseldorf 40211 DE  home: <rs at mytum.de>
>>>>>>> +49-179-2981632 icq 16845346           work: <rs at interface-ag.de>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Worringer Str 31 Duesseldorf 40211 DE  home: <rs at mytum.de>
>>>>> +49-179-2981632 icq 16845346           work: <rs at interface-ag.de>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Akira TAGOH
>
>
>


-- 
Worringer Str 31 Duesseldorf 40211 DE  home: <rs at mytum.de>
+49-179-2981632 icq 16845346           work: <rs at interface-ag.de>


More information about the Fontconfig mailing list