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: Sat, 17 Jan 2015 22:59:57 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0 SeaMonkey/2.31

Hi,

Fred Kiefer wrote:
I just went through the whole code another time and noticed that I
overlooked that chance of getting a loop because of macros. You should
also add log statements before and after all macro calls especially
around calls to WANT_LINE_HEIGHT.
I start to have really a lot of debug. The loop seems quite tight, I added logs before each macro call and get this:

...
2015-01-17 22:01:12.655 Ink[6073] Main glyph layout loop. i:0
2015-01-17 22:01:12.657 Ink[6073] 2-Compute_Baseline
2015-01-17 22:01:12.659 Ink[6073] 2-WantLineHeight 12.857143
2015-01-17 22:01:12.662 Ink[6073] f_ascender: 10.285714
2015-01-17 22:01:12.664 Ink[6073] Main glyph layout loop. i:0
2015-01-17 22:01:12.667 Ink[6073] 2-Compute_Baseline
2015-01-17 22:01:12.670 Ink[6073] 2-WantLineHeight 12.857143
...
the "2" is the call in the "Baseline adjustments" block. For me it is around line 922.

I added a NSLog after the macro:
2015-01-17 22:55:14.668 Ink[7224] Main glyph layout loop. i:0
2015-01-17 22:55:14.670 Ink[7224] 2-Compute_Baseline
2015-01-17 22:55:14.672 Ink[7224] 2-WantLineHeight 12.857143
2015-01-17 22:55:14.675 Ink[7224] f_ascender: 10.285714
2015-01-17 22:55:14.678 Ink[7224] Main glyph layout loop. i:0
2015-01-17 22:55:14.680 Ink[7224] 2-Compute_Baseline
2015-01-17 22:55:14.682 Ink[7224] 2-WantLineHeight 12.857143
2015-01-17 22:55:14.685 Ink[7224] f_ascender: 10.285714
2015-01-17 22:55:14.688 Ink[7224] Main glyph layout loop. i:0

It does not get reached, thus it continues/exits the loop inside the macro. I also put an NSLog "loop block end" before the loop end.
During normal operation you get this:

2015-01-17 22:58:16.161 Ink[8176] Main glyph layout loop. i:1
2015-01-17 22:58:16.164 Ink[8176] 2-Compute_Baseline
2015-01-17 22:58:16.166 Ink[8176] 2-WantLineHeight 14.000000
2015-01-17 22:58:16.169 Ink[8176] 2-WantLineHeight completed
2015-01-17 22:58:16.171 Ink[8176] checking if g is GSAttachmentGlyph
2015-01-17 22:58:16.174 Ink[8176] glyph size 9.000000 0.000000
2015-01-17 22:58:16.177 Ink[8176] moving to next glyph
2015-01-17 22:58:16.179 Ink[8176] loop block end
2015-01-17 22:58:16.182 Ink[8176] Main glyph layout loop. i:2

The problem is thus inside the second call of WANT_LINE_HEIGHT, it gets called with a reasonably valid value though. I don't fully understand the code, the macro is called inside a loop, the macro calls a GOTO!

Riccardo



reply via email to

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