discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hang in font panel with certain fonts


From: Fred Kiefer
Subject: Re: Hang in font panel with certain fonts
Date: Sat, 10 Jan 2015 11:48:20 +0100


Am 10.01.2015 um 00:33 schrieb Riccardo Mottola <riccardo.mottola@libero.it>:

> Hi,
> 
> I have added the logs
> 
> @@ -994,10 +997,11 @@
>            /* Only the width is used. */
>            p.x += g->size.width;
>          }
> -
> +        NSLog(@"glyph size %f %f", g->size.width, g->size.height);
>        /* Did the glyph fit in the line frag rect? */
>        if (p.x > lf->rect.size.width)
>          {
> +            NSLog(@"glyph did not fit in line frag rect");
>            /* It didn't. Try to break the line. */
>            switch ([curParagraphStyle lineBreakMode])
>              { /* TODO: implement all modes */
> @@ -1092,6 +1096,7 @@
>              {
>                prev_had_non_nominal_width = NO;
>              }
> +            NSLog(@"moving to next glyph");
>            i++;
>            g++;
>          }
> @@ -1226,7 +1231,7 @@
>       DESTROY(temp);
>       return ret;
>     }
> -
> 
> Is this about what you needed ? glyph did not fit doesn't get printed.
> 
> Fred Kiefer wrote:
>> The increase of i should happen on line 1095, at least for regular 
>> characters. Looks like we never get there, but better check that with 
>> another NSLog.
>> How could that happen? Maybe line 999 evaluates to true, that is, the line 
>> was filled by the first glyph. Could you add anothe output before that line 
>> and report both values? If this is true, please print out the size of the 
>> glyph, for example on line 995.
> This is what I get. Notice that the sizes are of "zero height"
> 
> 2015-01-10 00:27:12.916 Ink[8250] Main glyph layout loop. i:0
> 2015-01-10 00:27:12.919 Ink[8250] glyph size 8.000000 0.000000
> 2015-01-10 00:27:12.921 Ink[8250] moving to next glyph
> 2015-01-10 00:27:12.924 Ink[8250] Main glyph layout loop. i:1
> 2015-01-10 00:27:12.926 Ink[8250] glyph size 7.000000 0.000000
> 2015-01-10 00:27:12.929 Ink[8250] moving to next glyph
> 2015-01-10 00:27:12.932 Ink[8250] Main glyph layout loop. i:2
> 2015-01-10 00:27:12.935 Ink[8250] glyph size 3.000000 0.000000
> 2015-01-10 00:27:12.937 Ink[8250] moving to next glyph
> 2015-01-10 00:27:12.940 Ink[8250] Main glyph layout loop. i:3
> 2015-01-10 00:27:12.942 Ink[8250] glyph size 8.000000 0.000000
> 2015-01-10 00:27:12.945 Ink[8250] moving to next glyph
> 2015-01-10 00:27:12.947 Ink[8250] Main glyph layout loop. i:4
> 2015-01-10 00:27:12.950 Ink[8250] GSHorizontalTypeSetter - howMany 0
> 2015-01-10 00:27:12.953 Ink[8250] layoutNewParagraph: 0
> 2015-01-10 00:27:12.962 Ink[8250] layoutGlyphsInLayoutManager index 0 howMany > 0
> 2015-01-10 00:27:12.965 Ink[8250] layoutNewParagraph: 1
> 2015-01-10 00:27:12.969 Ink[8250] layoutGlyphsInLayoutManager index 0 howMany > 0
> 2015-01-10 00:27:12.972 Ink[8250] layoutNewParagraph: 1
> 2015-01-10 00:27:12.986 Ink[8250] layoutGlyphsInLayoutManager index 0 howMany > 0
> 2015-01-10 00:27:12.989 Ink[8250] layoutNewParagraph: 1
> 2015-01-10 00:27:13.013 Ink[8250] Main glyph layout loop. i:0
> 2015-01-10 00:27:13.016 Ink[8250] Main glyph layout loop. i:0
> 2015-01-10 00:27:13.018 Ink[8250] Main glyph layout loop. i:0
> 2015-01-10 00:27:13.021 Ink[8250] Main glyph layout loop. i:0
> 2015-01-10 00:27:13.023 Ink[8250] Main glyph layout loop. i:0
> 2015-01-10 00:27:13.026 Ink[8250] Main glyph layout loop. i:0
> 2015-01-10 00:27:13.028 Ink[8250] Main glyph layout loop. i:0
> ^C

The interesting bit is the end of your output. We stick in the main loop but 
never get to any of your new log statements. This should mean that we reach one 
of the continue statements further up in the code. Could you please add a log 
output just before each of the continue lines? For me they are on the lines 862 
and 868.
All of this is based on the asumption that the "Main glyph layout loop. i:" 
output comes from inside the main loop, that is from below line 732.

Fred




reply via email to

[Prev in Thread] Current Thread [Next in Thread]