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
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep