You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By impossible, I mean the computer freezes, not it can't be done—I-perf, not I-crash, in tag terms. The more glyphs that are on the screen, the slower it renders.
I discovered this bug while going through a collection of Chinese fonts I found, hitting «Encoding→Compact» and scrolling.
Many fonts in the collection are affected. Among the affected fonts is 蒙纳繁版黑.otf (CHei3HK-Bold-Roman).
I'm still working out what the problem is; whatever it is, it's deep in the system. A hint is that if I kill FontForge in GDB, the window will still render eventually, meaning it seems to be waiting on Xorg to respond.
Here's a traceback:
0x0000155553b22628 in poll () from /usr/lib/libc.so.6
(gdb) bt
#0 0x0000155553b22628 in poll () at /usr/lib/libc.so.6
#1 0x00001555520f2630 in () at /usr/lib/libxcb.so.1
#2 0x00001555520f2d21 in () at /usr/lib/libxcb.so.1
#3 0x00001555520f2dae in xcb_writev () at /usr/lib/libxcb.so.1
#4 0x000015555269ecdf in _XSend () at /usr/lib/libX11.so.6
#5 0x00001555520cc7d9 in XRenderAddGlyphs () at /usr/lib/libXrender.so.1
#6 0x0000155553e1291a in () at /usr/lib/libcairo.so.2
#7 0x0000155553df48c2 in () at /usr/lib/libcairo.so.2
#8 0x0000155553df4df7 in () at /usr/lib/libcairo.so.2
#9 0x0000155553d9c5c1 in () at /usr/lib/libcairo.so.2
#10 0x0000155553e17160 in () at /usr/lib/libcairo.so.2
#11 0x0000155553dee6c9 in () at /usr/lib/libcairo.so.2
#12 0x0000155553da6082 in () at /usr/lib/libcairo.so.2
#13 0x0000155553dfb342 in cairo_show_glyphs () at /usr/lib/libcairo.so.2
#14 0x000015555401e6e4 in () at /usr/lib/libpangocairo-1.0.so.0
#15 0x000015555401eb5f in () at /usr/lib/libpangocairo-1.0.so.0
#16 0x0000155553fd8e3b in pango_renderer_draw_glyphs () at /usr/lib/libpango-1.0.so.0
#17 0x000015555401aafa in pango_cairo_show_glyph_string () at /usr/lib/libpangocairo-1.0.so.0
#18 0x0000555555772db3 in _GGDKDraw_MyCairoRenderLayout
(cc=0x555555aaf450, fg=<optimized out>, layout=<optimized out>, x=1203, y=474)
at gdraw/ggdkcdraw.c:230
#19 0x00005555557729f1 in GGDKDrawDoText8
(w=0x555555d05450, x=1203, y=474, text=0x7fffffffc430 "獑", cnt=-1, col=2236962, drawit=tf_drawit, arg=0x7fffffffc358) at gdraw/ggdkcdraw.c:1259
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x000055555572e7d8 in GDrawDrawText8
(gw=0x7fffffff9c08, x=1, y=-1, text=0x155553b22628 <poll+24> "H=", cnt=1436603336, col=0)
at gdraw/gdrawtxt.c:125
#21 0x000055555566da0a in FVExpose
(fv=<optimized out>, pixmap=<optimized out>, event=<optimized out>)
at fontforgeexe/fontview.c:6005
#22 0x000055555566da0a in v_e_h (gw=<optimized out>, event=<optimized out>)
at fontforgeexe/fontview.c:6748
#23 0x000055555572a7b2 in _GWidget_Container_eh (gw=0x555555d05450, event=0x7fffffffc7b0)
at gdraw/gcontainer.c:281
#24 0x0000555555737494 in _GGDKDraw_CallEHChecked (gw=<optimized out>, event=0x7, eh=
0xfffffffffffffdfc) at gdraw/ggdkdraw.c:323
#25 0x0000555555737494 in _GGDKDraw_DispatchEvent
(event=<optimized out>, data=<optimized out>) at gdraw/ggdkdraw.c:1221
#26 0x00001555542cf8b4 in () at /usr/lib/libgdk-3.so.0
#27 0x00001555542c2142 in () at /usr/lib/libgdk-3.so.0
#28 0x00001555542c20bc in () at /usr/lib/libgdk-3.so.0
#29 0x00001555542c1b2f in () at /usr/lib/libgdk-3.so.0
#30 0x00001555542c1cfd in () at /usr/lib/libgdk-3.so.0
#31 0x0000155553d3eb4a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#32 0x0000155553d3f7f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#33 0x00001555542cbad0 in () at /usr/lib/libgdk-3.so.0
#34 0x00001555542da35c in () at /usr/lib/libgdk-3.so.0
#35 0x0000155553c5fa74 in () at /usr/lib/libglib-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#36 0x0000155553c6027f in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#37 0x0000155553c621c1 in () at /usr/lib/libglib-2.0.so.0
#38 0x0000155553c62201 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#39 0x000055555573a4e6 in GGDKDrawEventLoop (gdisp=0x555555a69e90) at gdraw/ggdkdraw.c:2187
#40 0x00005555557084f8 in fontforge_main (argc=<optimized out>, argv=<optimized out>)
at fontforgeexe/startui.c:1416
#41 0x0000155553a57ee3 in __libc_start_main () at /usr/lib/libc.so.6
#42 0x00005555555aba0e in _start ()
The text was updated successfully, but these errors were encountered:
By the way, here's an absolutely bizarre hint. If I go «Ctrl-A», then Hints menu, Clear Hints, in the FontView, and wait for that to happen, scrolling becomes instant.
By impossible, I mean the computer freezes, not it can't be done—
I-perf
, notI-crash
, in tag terms. The more glyphs that are on the screen, the slower it renders.I discovered this bug while going through a collection of Chinese fonts I found, hitting «Encoding→Compact» and scrolling.
Many fonts in the collection are affected. Among the affected fonts is
蒙纳繁版黑.otf
(CHei3HK-Bold-Roman).I'm still working out what the problem is; whatever it is, it's deep in the system. A hint is that if I kill FontForge in GDB, the window will still render eventually, meaning it seems to be waiting on Xorg to respond.
Here's a traceback:
The text was updated successfully, but these errors were encountered: