<div dir="ltr">Thanks.Β  That looks unrelated.Β  Please file a bug against Pango.Β  Can you try with Pango master?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 29, 2017 at 6:05 PM,  <span dir="ltr"><<a href="mailto:iofelben@gmail.com" target="_blank">iofelben@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Another crash:<br>
<br>
Paste this into gedit:<br>
<br>
Β πŸ‘ πŸ‘Ž πŸ‘Œ πŸ‘Š βœŠ βœŒ πŸ‘‹ βœ‹ πŸ‘ πŸ‘† πŸ‘‡ πŸ‘‰ πŸ‘ˆ πŸ™Œ πŸ™ β˜ πŸ‘ πŸ’ͺ πŸ’… β¬‡ β¬… βž‘ β†— β†– β†˜ β†™ β†”<br>
↕ πŸ”„ β—€ β–Ά πŸ”Ό πŸ”½ β†© β†ͺ βͺ β© β« β¬ β€΅ β€΄ πŸ”€ πŸ” πŸ”‚ πŸ” πŸ”š πŸ”™ πŸ”› πŸ”œ πŸ”ƒ πŸ”Ί πŸ”» β¬†<br>
<br>
and then select it<br>
<br>
<br>
Pango:ERROR:pango-glyph-item.<wbr>c:320:pango_glyph_item_iter_<wbr>next_cluster:<br>
assertion failed: (iter->end_char <= item->num_chars)<br>
<br>
<br>
#0Β  0x00007fd51d29a68b in raise () at /lib64/libc.so.6<br>
#1Β  0x00007fd51d29c417 in abort () at /lib64/libc.so.6<br>
#2Β  0x00007fd51d8da26d in g_assertion_message () at /lib64/libglib-<br>
2.0.so.0<br>
#3Β  0x00007fd51d8da2fa in g_assertion_message_expr () at<br>
/lib64/libglib-2.0.so.0<br>
#4Β  0x00007fd51f178076 inΒ  () at /lib64/libpango-1.0.so.0<br>
#5Β  0x00007fd51f3b110f in pango_cairo_renderer_draw_<wbr>glyph_item () at<br>
/lib64/libpangocairo-1.0.so.0<br>
(gdb) bt 300<br>
#0Β  0x00007fd51d29a68b in raise () at /lib64/libc.so.6<br>
#1Β  0x00007fd51d29c417 in abort () at /lib64/libc.so.6<br>
#2Β  0x00007fd51d8da26d in g_assertion_message () at /lib64/libglib-<br>
2.0.so.0<br>
#3Β  0x00007fd51d8da2fa in g_assertion_message_expr () at<br>
/lib64/libglib-2.0.so.0<br>
#4Β  0x00007fd51f178076 inΒ  () at /lib64/libpango-1.0.so.0<br>
#5Β  0x00007fd51f3b110f in pango_cairo_renderer_draw_<wbr>glyph_item () at<br>
/lib64/libpangocairo-1.0.so.0<br>
#6Β  0x00007fd51f184e1e in pango_renderer_draw_glyph_item () at<br>
/lib64/libpango-1.0.so.0<br>
#7Β  0x00007fd51f3b15fd in pango_cairo_show_glyph_item () at<br>
/lib64/libpangocairo-1.0.so.0<br>
#8Β  0x00007fd51fba7816 in gtk_text_renderer_draw_glyph_<wbr>item<br>
(renderer=0x39caad6040, text=0x39c9fe7c50 "πŸ‘ πŸ‘Ž πŸ‘Œ πŸ‘Š βœŠ βœŒ πŸ‘‹ βœ‹ πŸ‘ πŸ‘†<br>
πŸ‘‡ πŸ‘‰ πŸ‘ˆ πŸ™Œ πŸ™ β˜ πŸ‘ πŸ’ͺ πŸ’… β¬‡ β¬… βž‘ β†— β†– β†˜ β†™ β†” β†• πŸ”„ β—€ β–Ά πŸ”Ό πŸ”½ β†© β†ͺ βͺ β© β« β¬<br>
Β \265 β€΄ πŸ”€ πŸ” πŸ”‚", <incomplete sequence \360\237\224>.<br>
.., glyph_item=0x39ca1cf810, x=932864, y=14336) at gtktextdisplay.c:334<br>
#9Β  0x00007fd51f184e1e in pango_renderer_draw_glyph_item () at<br>
/lib64/libpango-1.0.so.0<br>
#10 0x00007fd51f1858b1 in pango_renderer_draw_layout_<wbr>line () at<br>
/lib64/libpango-1.0.so.0<br>
#11 0x00007fd51fba817a in render_para (selection_end_index=-1,<br>
selection_start_index=-1, line_display=<optimized out>,<br>
text_renderer=<optimized out>) at gtktextdisplay.c:705<br>
#12 0x00007fd51fba817a in gtk_text_layout_draw (layout=0x39ca4e5d40, wi<br>
dget=widget@entry=<wbr>0x39ca5e8610, cr=cr@entry=0x39cab3ab70, widgets=widge<br>
ts@entry=0x0)<br>
Β  Β  at gtktextdisplay.c:942<br>
#13 0x00007fd51fbc6504 in gtk_text_view_paint (cr=0x39cab3ab70,<br>
widget=0x39ca5e8610) at gtktextview.c:5867<br>
#14 0x00007fd51fbc6504 in draw_text (cr=0x39cab3ab70,<br>
user_data=0x39ca5e8610) at gtktextview.c:5908<br>
#15 0x00007fd51fb333f0 in _gtk_pixel_cache_repaint<br>
(user_data=0x39ca5e8610, canvas_rect=0x7ffc9f295740,<br>
view_rect=0x7ffc9f295730, draw=0x7fd51fbc6290 <draw_text>,<br>
window=0x39caae2340, cache=0x39ca5e0d00) at gtkpixelcache.c:357<br>
#16 0x00007fd51fb333f0 in _gtk_pixel_cache_draw (cache=0x39ca5e0d00, cr<br>
=cr@entry=0x39ca4fc8b0, window=window@entry=<wbr>0x39caae2340, view_rect=vie<br>
w_rect@entry=0x7ffc9f295730, canvas_rect=canvas_rect@entry=<wbr>0x7ffc9f2957<br>
40, draw=draw@entry=0x7fd51fbc6290 <draw_text>, user_data=0x39ca5e8610)<br>
at gtkpixelcache.c:447<br>
#17 0x00007fd51fbcb970 in gtk_text_view_draw (widget=0x39ca5e8610,<br>
cr=0x39ca4fc8b0) at gtktextview.c:5998<br>
#18 0x00007fd52040db2d in gtk_source_view_draw () at<br>
/lib64/libgtksourceview-3.0.<wbr>so.1<br>
#19 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca5e8610, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#20 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca32f7f0, child=0x39ca5e8610, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#21 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca32f7f0,<br>
cr=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#22 0x00007fd51fb6164b in gtk_scrolled_window_render (gadget=<optimized<br>
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>, data=0x0) at<br>
gtkscrolledwindow.c:2078<br>
#23 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#24 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca4095e0,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#25 0x00007fd51fb5f931 in gtk_scrolled_window_draw (widget=<optimized<br>
out>, cr=<optimized out>) at gtkscrolledwindow.c:2989<br>
#26 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca32f7f0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#27 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca05c2c0, child=0x39ca32f7f0, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#28 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05c2c0, cr=c<br>
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#29 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized<br>
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>, unused=0x0) at<br>
gtkbox.c:448<br>
#30 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#31 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca409660,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#32 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkbox.c:457<br>
#33 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca05c2c0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#34 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca49a3c0, child=0x39ca05c2c0, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#35 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca49a3c0,<br>
cr=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#36 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca49a3c0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#37 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca3a9870, child=0x39ca49a3c0, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#38 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca3a9870, cr=c<br>
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#39 0x00007fd51fa93324 in gtk_grid_render (gadget=<optimized out>,<br>
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized<br>
out>, height=<optimized out>, data=0x0) at gtkgrid.c:1713<br>
#40 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#41 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca22b260,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#42 0x00007fd51fa94461 in gtk_grid_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkgrid.c:1722<br>
#43 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca3a9870, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#44 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca2b9660, child=0x39ca3a9870, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#45 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b9660,<br>
cr=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#46 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca2b9660, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#47 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39c9fcdf10, child=0x39ca2b9660, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#48 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39c9fcdf10, cr=c<br>
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#49 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized<br>
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>, unused=0x0) at<br>
gtkbox.c:448<br>
#50 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#51 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca22b4e0,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#52 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkbox.c:457<br>
#53 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39c9fcdf10, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#54 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca2ba260, child=0x39c9fcdf10, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#55 0x00007fd51fb03bb2 in gtk_notebook_draw_stack (gadget=<optimized<br>
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>, unused=0x0) at<br>
gtknotebook.c:2515<br>
#56 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#57 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=gadget@entry=0x39<br>
ca1bd7a0, cr=cr@entry=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#58 0x00007fd51f9c7d08 in gtk_box_gadget_draw (gadget=<optimized out>,<br>
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized<br>
out>, height=<optimized out>)<br>
Β  Β  at gtkboxgadget.c:512<br>
#59 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca258b30, cr=<br>
cr@entry=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#60 0x00007fd51fb0639c in gtk_notebook_draw (widget=<optimized out>,<br>
cr=0x39ca4fc8b0) at gtknotebook.c:2530<br>
#61 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca2ba260, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#62 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca2b2a40, child=0x39ca2ba260, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#63 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b2a40, cr=c<br>
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#64 0x00007fd51fa93324 in gtk_grid_render (gadget=<optimized out>,<br>
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized<br>
out>, height=<optimized out>, data=0x0) at gtkgrid.c:1713<br>
#65 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#66 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1bd620,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#67 0x00007fd51fa94461 in gtk_grid_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkgrid.c:1722<br>
#68 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca2b2a40, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#69 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca05bbc0, child=0x39ca2b2a40, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#70 0x00007fd51fb12e50 in gtk_paned_render (gadget=<optimized out>,<br>
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized<br>
out>, height=<optimized out>, data=0x0) at gtkpaned.c:1818<br>
#71 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#72 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1bd1a0,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#73 0x00007fd51fb12c61 in gtk_paned_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkpaned.c:1782<br>
#74 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca05bbc0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#75 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca05cf20, child=0x39ca05bbc0, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#76 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05cf20, cr=c<br>
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#77 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized<br>
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>, unused=0x0) at<br>
gtkbox.c:448<br>
#78 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#79 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca236f10,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#80 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkbox.c:457<br>
#81 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca05cf20, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#82 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca05b800, child=0x39ca05cf20, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#83 0x00007fd51fb12dc0 in gtk_paned_render (gadget=<optimized out>,<br>
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized<br>
out>, height=<optimized out>, data=0x0) at gtkpaned.c:1832<br>
#84 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#85 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1de400,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#86 0x00007fd51fb12c61 in gtk_paned_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkpaned.c:1782<br>
#87 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca05b800, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#88 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca05cb00, child=0x39ca05b800, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#89 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05cb00, cr=c<br>
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#90 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized<br>
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>, unused=0x0) at<br>
gtkbox.c:448<br>
#91 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized<br>
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,<br>
width=<optimized out>, height=<optimized out>) at<br>
gtkcsscustomgadget.c:159<br>
#92 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1de200,<br>
cr=0x39ca4fc8b0) at gtkcssgadget.c:877<br>
#93 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,<br>
cr=<optimized out>) at gtkbox.c:457<br>
#94 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca05cb00, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#95 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca2b1860, child=0x39ca05cb00, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#96 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b1860,<br>
cr=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#97 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry<br>
=0x39ca2b1860, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr<br>
y=1) at gtkwidget.c:7017<br>
#98 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta<br>
iner@entry=0x39ca18d030, child=0x39ca2b1860, cr=cr@entry=0x39ca4fc8b0)<br>
at gtkcontainer.c:3838<br>
#99 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca18d030,<br>
cr=0x39ca4fc8b0) at gtkcontainer.c:3658<br>
#100 0x00007fd51fc3b5b3 in gtk_window_draw (widget=0x39ca18d030,<br>
cr=0x39ca4fc8b0) at gtkwindow.c:10214<br>
#101 0x00007fd51fc2d7cb in gtk_widget_draw_internal<br>
(widget=0x39ca18d030, cr=0x39ca4fc8b0, clip_to_size=<optimized out>) at<br>
gtkwidget.c:7017<br>
#102 0x00007fd51fc36b38 in gtk_widget_render (widget=widget@entry=0x39c<br>
a18d030, window=0x39ca441320, region=<optimized out>) at<br>
gtkwidget.c:17512<br>
#103 0x00007fd51fad7239 in gtk_main_do_event (event=<optimized out>) at<br>
gtkmain.c:1824<br>
#104 0x00007fd51f5eb465 in _gdk_event_emit (event=event@entry=0x7ffc9f2<br>
97450) at gdkevents.c:73<br>
#105 0x00007fd51f5fb7a5 in _gdk_window_process_updates_<wbr>recurse_helper<br>
(window=0x39ca441320, expose_region=<optimized out>) at<br>
gdkwindow.c:3849<br>
#106 0x00007fd51f5fc9a6 in gdk_window_process_updates_<wbr>internal<br>
(window=0x39ca441320) at gdkwindow.c:3995<br>
#107 0x00007fd51f5fcba0 in gdk_window_process_updates_<wbr>with_mode<br>
(window=<optimized out>, recurse_mode=<optimized out>) at<br>
gdkwindow.c:4189<br>
#108 0x00007fd51db8d57d in g_closure_invoke () at /lib64/libgobject-<br>
2.0.so.0<br>
#109 0x00007fd51dba0e4e in signal_emit_unlocked_R () at<br>
/lib64/libgobject-2.0.so.0<br>
#110 0x00007fd51dba9975 in g_signal_emit_valist () at<br>
/lib64/libgobject-2.0.so.0<br>
#111 0x00007fd51dbaa2df in g_signal_emit () at /lib64/libgobject-<br>
2.0.so.0<br>
#112 0x00007fd51f5f428f in _gdk_frame_clock_emit_paint<br>
(frame_clock=<optimized out>) at gdkframeclock.c:640<br>
#113 0x00007fd51f5f49c1 in gdk_frame_clock_paint_idle<br>
(data=0x39ca024270) at gdkframeclockidle.c:430<br>
#114 0x00007fd51f5dfb20 in gdk_threads_dispatch (data=0x39ca169d60) at<br>
gdk.c:743<br>
#115 0x00007fd51d8b3ffd in g_timeout_dispatch () at /lib64/libglib-<br>
2.0.so.0<br>
#116 0x00007fd51d8b3597 in g_main_context_dispatch () at<br>
/lib64/libglib-2.0.so.0<br>
#117 0x00007fd51d8b3938 in g_main_context_iterate.isra () at<br>
/lib64/libglib-2.0.so.0<br>
#118 0x00007fd51d8b39cc in g_main_context_iteration () at<br>
/lib64/libglib-2.0.so.0<br>
#119 0x00007fd51e3ea89d in g_application_run () at /lib64/libgio-<br>
2.0.so.0<br>
#120 0x00000039c94fddda in main ()<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Sat, 2017-07-29 at 17:43 +0100, Behdad Esfahbod wrote:<br>
> Should be fixed.Β  Thanks!<br>
><br>
> On Sat, Jul 29, 2017 at 4:45 PM, <<a href="mailto:iofelben@gmail.com">iofelben@gmail.com</a>> wrote:<br>
> > Tried to run gnome-characters with Cairo master, switching to noto-<br>
> > color-emoji crashes with:<br>
> ><br>
> > #0Β  0x00007fd0ecd2868b in raise () at /lib64/libc.so.6<br>
> > #1Β  0x00007fd0ecd2a417 in abort () at /lib64/libc.so.6<br>
> > #2Β  0x00007fd0ecd208fa in __assert_fail_base () at /lib64/libc.so.6<br>
> > #3Β  0x00007fd0ecd20972 inΒ  () at /lib64/libc.so.6<br>
> > #4Β  0x00007fd0f1370b6e in _cairo_error (status=status@entry=3646361<br>
> > 312)<br>
> > at cairo-error.c:68<br>
> > #5Β  0x00007fd0f1367802 in _cairo_set_error (cr=0x3dd89ecc00,<br>
> > status=3646361312) at cairo.c:400<br>
> > #6Β  0x00007fd0f13691b1 in cairo_show_text_glyphs (cr=0x3dd89ecc00,<br>
> > utf8=0x3dd8a41b40 "πŸ˜€", utf8_len=4, glyphs=0x7fffada90d60<br>
> > , num_glyphs=1<br>
> > , clusters=0x7fffada91640, num_clusters=1, cluster_flags=(unknown:<br>
> > 0))<br>
> > at cairo.c:3742<br>
> > #7Β  0x00007fd0f0283f69 in<br>
> > pango_cairo_renderer_show_<wbr>text_glyphs.isra ()<br>
> > at /lib64/libpangocairo-1.0.so.0<br>
> > #8Β  0x00007fd0f0284161 in pango_cairo_renderer_draw_<wbr>glyph_item ()<br>
> > at<br>
> > /lib64/libpangocairo-1.0.so.0<br>
> > #9Β  0x00007fd0f0057e1e in pango_renderer_draw_glyph_item () at<br>
> > /lib64/libpango-1.0.so.0<br>
> > #10 0x00007fd0f00588b1 in pango_renderer_draw_layout_<wbr>line () at<br>
> > /lib64/libpango-1.0.so.0<br>
> > #11 0x00007fd0f0058c65 in pango_renderer_draw_layout () at<br>
> > /lib64/libpango-1.0.so.0<br>
> > #12 0x00007fd0f028443a in _pango_cairo_do_layout () at<br>
> > /lib64/libpangocairo-1.0.so.0<br>
> > #13 0x00007fd0ef560bde in ffi_call_unix64 () at /lib64/libffi.so.6<br>
> > #14 0x00007fd0ef56054f in ffi_call () at /lib64/libffi.so.6<br>
> > #15 0x00007fd0f10ab6f6 inΒ  () at /lib64/libgjs.so.0<br>
> > #16 0x00007fd0f10ad066 inΒ  () at /lib64/libgjs.so.0<br>
> > #17 0x00007fd0ee3626a8 in js::Invoke(JSContext*, JS::CallArgs,<br>
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so<br>
> > #18 0x00007fd0ee3584cd in Interpret(JSContext*, js::RunState&) ()<br>
> > at<br>
> > /lib64/libmozjs-38.so<br>
> > #19 0x00007fd0ee362324 in js::RunScript(JSContext*, js::RunState&)<br>
> > ()<br>
> > at /lib64/libmozjs-38.so<br>
> > #20 0x00007fd0ee362614 in js::Invoke(JSContext*, JS::CallArgs,<br>
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so<br>
> > #21 0x00007fd0ee664f13 in js_fun_apply(JSContext*, unsigned int,<br>
> > JS::Value*) () at /lib64/libmozjs-38.so<br>
> > #22 0x00007fd0ee3626a8 in js::Invoke(JSContext*, JS::CallArgs,<br>
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so<br>
> > #23 0x00007fd0ee363243 in js::Invoke(JSContext*, JS::Value const&,<br>
> > JS::Value const&, unsigned int, JS::Value const*,<br>
> > JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-38.so<br>
> > #24 0x00007fd0ee4b5485 in js::jit::DoCallFallback(<wbr>JSContext*,<br>
> > js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int,<br>
> > JS::Value*, JS::MutableHandle<JS::Value>) ()<br>
> >Β  Β  Β at /lib64/libmozjs-38.so<br>
> > #25 0x00007fd0f1877510 inΒ  ()<br>
> > #26 0x00007fffada948a0 inΒ  ()<br>
> > #27 0x00007fffada94368 inΒ  ()<br>
> > #28 0x0000000000000000 inΒ  ()<br>
> ><br>
> > On Sat, 2017-07-29 at 16:30 +0100, Behdad Esfahbod wrote:<br>
> > > On Sat, Jul 29, 2017 at 11:58 AM, Uli Schlachter <<a href="mailto:psychon@znc.in">psychon@znc.in</a>><br>
> > > wrote:<br>
> > > > Hi Behdad<br>
> > > ><br>
> > > > I don't think that is my decision to make. When thinking about<br>
> > > > "fonts in<br>
> > > > cairo", I'm thinking "Behdad". I'm just asking weird questions<br>
> > from<br>
> > > > the<br>
> > > > sideline. :-)<br>
> > ><br>
> > > Thanks. :-)Β  Pushed!!!!Β  At least ten people already asked me<br>
> > "what's<br>
> > > up with emoji" at GUADEC...<br>
> > ><br>
> > > > Uli<br>
> > > ><br>
> > > > P.S.: How relevant and up to date is the CC list here? I always<br>
> > get<br>
> > > > a<br>
> > > > "your message to gtk-devel-list awaits moderator approval"-mail<br>
> > > > when<br>
> > > > replying to this thread...<br>
> > > ><br>
> > ><br>
> > > My messages go through, yours probably don't because you are not<br>
> > a<br>
> > > member.Β  It's valuable still.<br>
> > ><br>
> > > Cheers,<br>
> > > b<br>
> > ><br>
> > > > On 28.07.2017 16:38, Behdad Esfahbod wrote:<br>
> > > > > Uli,<br>
> > > > ><br>
> > > > > Can we commit this?Β  I don't think waiting another few years<br>
> > will<br>
> > > > result in<br>
> > > > > a superior patchset. :)<br>
> > > > ><br>
> > > > > Cheers,<br>
> > > > ><br>
> > > > > behdad<br>
> > > > ><br>
> > > > > On Wed, Jul 19, 2017 at 1:53 AM, Behdad Esfahbod <behdad@behd<br>
> > ad.o<br>
> > > > rg> wrote:<br>
> > > > ><br>
> > > > >> Right.Β  In the future we would want to make it show glyphs<br>
> > in<br>
> > > > the input<br>
> > > > >> order, ie. not separate color vs non-color.Β  That's the<br>
> > order<br>
> > > > required by<br>
> > > > >> CSS for example.Β  In a show-text-glyphs call with<br>
> > > > CAIRO_TEXT_CLUSTER_FLAG_<wbr>BACKWARD,<br>
> > > > >> it might be desirable to show back-to-front.<br>
> > > > >><br>
> > > > >> On Tue, Jul 18, 2017 at 1:59 PM, Matthias Clasen <<br>
> > > > >> <a href="mailto:matthias.clasen@gmail.com">matthias.clasen@gmail.com</a>> wrote:<br>
> > > > >><br>
> > > > >>> On Sat, Jul 15, 2017 at 4:05 AM, Uli Schlachter <psychon@zn<br>
> > <a href="http://c.in" rel="noreferrer" target="_blank">c.in</a><br>
> > > > > wrote:<br>
> > > > >>><br>
> > > > >>>> On 07.07.2017 15:23, Matthias Clasen wrote:<br>
> > > > >>>>> On Sat, Jul 1, 2017 at 2:25 AM, Uli Schlachter <psychon@z<br>
> > nc.i<br>
> > > > n> wrote:<br>
> > > > >>>>>> On 30.06.2017 17:29, Behdad Esfahbod wrote:<br>
> > > > >>>>>>> On Jun 30, 2017 7:51 PM, "Matthias Clasen" <mclasen@red<br>
> > hat.<br>
> > > > com><br>
> > > > >>>> wrote:<br>
> > > > >>>>>>> On Fri, 2017-06-30 at 17:02 +0200, Uli Schlachter<br>
> > wrote:<br>
> > > > >>>>>>>> On 28.06.2017 14:23, Behdad Esfahbod wrote:<br>
> > > > >>>>>>>>> All of you have asked me about the status of color<br>
> > fonts<br>
> > > > in<br>
> > > > >>>>>>>>> cairo.Β  There's<br>
> > > > >>>>>>>>> some discussion here:<br>
> > > > >>>>>>>><br>
> > > > >>>>>>>> what was the solution to make this fit into cairo's<br>
> > > > drawing model?<br>
> > > > >>>>>>>> Text<br>
> > > > >>>>>>>> / glyphs are used as a mask and a mask does not have<br>
> > > > colors.<br>
> > > > >>>>>>>><br>
> > > > >>>>>>><br>
> > > > >>>>>>> There is no solution to that. The assumption in cairo's<br>
> > > > drawing model<br>
> > > > >>>>>>> about glyphs/fonts has simply been invalidated by<br>
> > reality.<br>
> > > > >>>>>>><br>
> > > > >>>>>>><br>
> > > > >>>>>>> Correct.<br>
> > > > >>>>>><br>
> > > > >>>>>> Okay... so what is the new model? What happens when I<br>
> > draw a<br>
> > > > color<br>
> > > > >>>> glyph<br>
> > > > >>>>>> with operator XOR and a red source?<br>
> > > > >>>>><br>
> > > > >>>>><br>
> > > > >>>>> The red source is ignored for color glyphs because they<br>
> > are<br>
> > > > used as the<br>
> > > > >>>>> source.<br>
> > > > >>>><br>
> > > > >>>> Hi again,<br>
> > > > >>>><br>
> > > > >>>> I just came up with another question: How are overlapping<br>
> > > > glyphs handled?<br>
> > > > >>>><br>
> > > > >>>> Let's say I have a red glyph and a blue glyph and I draw<br>
> > them<br>
> > > > in such a<br>
> > > > >>>> way that they overlap. Let's say this additionally<br>
> > overlaps<br>
> > > > with a<br>
> > > > >>>> non-colored glyph in the same position and I use a green<br>
> > > > source with 50%<br>
> > > > >>>> alpha (cairo_set_source_rgba(cr, 0, 1, 0, 0.5)).<br>
> > > > >>>><br>
> > > > >>>> What's the visible result?<br>
> > > > >>>><br>
> > > > >>>><br>
> > > > >>> Here is what my implementation does: It renders the color<br>
> > > > glyphs, in<br>
> > > > >>> order, followed by the non-color glyphs.<br>
> > > > >>><br>
> > > > >>> In practice, I don't think the case of mixed color and non-<br>
> > > > color glyphs<br>
> > > > >>> in the same call will be all that common.<br>
> > > > >>> Most apps will explicitly set a color font just for the<br>
> > emoji<br>
> > > > and they<br>
> > > > >>> won't render regular text with an emoji font,<br>
> > > > >>> with the result that runs of color glyphs and non-color<br>
> > glyphs<br>
> > > > will<br>
> > > > >>> typically be in separate calls.<br>
> > > > >>><br>
> > > > >><br>
> > > > >><br>
> > > > >><br>
> > > > >> --<br>
> > > > >> behdad<br>
> > > > >> <a href="http://behdad.org/" rel="noreferrer" target="_blank">http://behdad.org/</a><br>
> > > > >><br>
> > > > ><br>
> > > > ><br>
> > > > ><br>
> > > ><br>
> > > ><br>
> > > > --<br>
> > > > "Why make things difficult, when it is possible to make them<br>
> > > > cryptic<br>
> > > > and totally illogical, with just a little bit more effort?" --<br>
> > A.<br>
> > > > P. J.<br>
> > ><br>
> > ><br>
> > ><br>
> > > ______________________________<wbr>_________________<br>
> > > gtk-devel-list mailing list<br>
> > > <a href="mailto:gtk-devel-list@gnome.org">gtk-devel-list@gnome.org</a><br>
> > > <a href="https://mail.gnome.org/mailman/listinfo/gtk-devel-list" rel="noreferrer" target="_blank">https://mail.gnome.org/<wbr>mailman/listinfo/gtk-devel-<wbr>list</a><br>
><br>
><br>
><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">behdad<br><a href="http://behdad.org/" target="_blank">http://behdad.org/</a></div>
</div>