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: Riccardo Mottola
Subject: Re: Hang in font panel with certain fonts
Date: Fri, 09 Jan 2015 17:09:34 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:34.0) Gecko/20100101 Firefox/34.0 SeaMonkey/2.31

Hi,

Fred Kiefer wrote:
could you please explain what you mean by "hang"?
And did you get the same stack trace after continuing your application
for some time and then stopping it again?
as we discussed, we suppose there is a loop, but where?

The first thing is I put an NSLog in both methods in the typesetter and I get something like that when selecting the font:

<...>
2015-01-09 16:47:36.263 Ink[4401] layoutNewParagraph: 1
2015-01-09 16:47:36.266 Ink[4401] GSHorizontalTypeSetter - howMany 0
2015-01-09 16:47:36.269 Ink[4401] layoutNewParagraph: 0
2015-01-09 16:47:36.273 Ink[4401] layoutGlyphsInLayoutManager index 0 howMany 0
2015-01-09 16:47:36.275 Ink[4401] layoutNewParagraph: 1
2015-01-09 16:47:36.278 Ink[4401] GSHorizontalTypeSetter - howMany 0
2015-01-09 16:47:36.281 Ink[4401] layoutNewParagraph: 0
2015-01-09 16:47:36.291 Ink[4401] layoutGlyphsInLayoutManager index 0 howMany 0
2015-01-09 16:47:36.293 Ink[4401] layoutNewParagraph: 1
2015-01-09 16:47:36.307 Ink[4401] layoutGlyphsInLayoutManager index 0 howMany 0
2015-01-09 16:47:36.309 Ink[4401] layoutNewParagraph: 1
<hang>

This means that the exit condition howMany is always true and that the hang is in layoutNewParagraph, which is not what we were expecting.

I then put a Log in the "main glyph loop" at about line 730 of GSHorizontalTypesetter
and indeeed:

2015-01-09 17:07:47.150 Ink[6497] Main glyph layout loop. i:0
2015-01-09 17:07:47.153 Ink[6497] Main glyph layout loop. i:0
2015-01-09 17:07:47.155 Ink[6497] Main glyph layout loop. i:0
2015-01-09 17:07:47.158 Ink[6497] Main glyph layout loop. i:0
2015-01-09 17:07:47.161 Ink[6497] Main glyph layout loop. i:0
2015-01-09 17:07:47.163 Ink[6497] Main glyph layout loop. i:0
<endless>

it never increments, while a usual log looks like this:
2015-01-09 17:07:31.184 Ink[6497] GSHorizontalTypeSetter - howMany 0
2015-01-09 17:07:31.187 Ink[6497] layoutNewParagraph: 0
2015-01-09 17:07:31.193 Ink[6497] layoutGlyphsInLayoutManager index 0 howMany 0
2015-01-09 17:07:31.197 Ink[6497] layoutNewParagraph: 1
2015-01-09 17:07:31.201 Ink[6497] Main glyph layout loop. i:0
2015-01-09 17:07:31.203 Ink[6497] Main glyph layout loop. i:1
2015-01-09 17:07:31.206 Ink[6497] Main glyph layout loop. i:2
2015-01-09 17:07:31.208 Ink[6497] Main glyph layout loop. i:3
2015-01-09 17:07:31.212 Ink[6497] Main glyph layout loop. i:4
2015-01-09 17:07:31.215 Ink[6497] Main glyph layout loop. i:5
2015-01-09 17:07:31.217 Ink[6497] Main glyph layout loop. i:6
2015-01-09 17:07:31.220 Ink[6497] Main glyph layout loop. i:7
2015-01-09 17:07:31.224 Ink[6497] GSHorizontalTypeSetter - howMany 0
<...>

Thus it loops inside there, if you have ideas where to check, just tell me, I'll continue poking around.

Riccardo





reply via email to

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