-
-
Notifications
You must be signed in to change notification settings - Fork 259
Open
Labels
Description
The following file is HTML (github won't let me attach as .html) extracted from an e-mail.
a.txt
When opening it in claws-mail with the litehtml viewer, it takes ages (several minutes!) to show anything, and the mail client looks like it's hung.
When opening it in litebrowser, it's faster, but still seems to take a long time.
Is there a chance that you could investigate on your end if anything might explain why it's so slow?
The claws-mail stack trace looks as follows:
#1 0x00007cb77410aef2 in litehtml::render_item_inline_context::place_inline
(this=this@entry=0x61f5674ae310, item=std::unique_ptr<litehtml::line_box_item> = {...}, self_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c3a10)
at litehtml/render_inline_context.cpp:286
#2 0x00007cb77410f04a in operator() (item_type=<optimized out>, el=<optimized out>, __closure=<optimized out>)
at litehtml/render_inline_context.cpp:52
#3 std::__invoke_impl<void, litehtml::render_item_inline_context::_render_content(int, int, bool, const litehtml::containing_block_context&, litehtml
::formatting_context*)::<lambda(const std::shared_ptr<litehtml::render_item>&, litehtml::iterator_item_type)>&, std::shared_ptr<litehtml::render_item>
&, litehtml::iterator_item_type> (__f=<optimized out>) at /usr/include/c++/13.2.1/bits/invoke.h:61
#4 std::__invoke_r<void, litehtml::render_item_inline_context::_render_content(int, int, bool, const litehtml::containing_block_context&, litehtml::f
ormatting_context*)::<lambda(const std::shared_ptr<litehtml::render_item>&, litehtml::iterator_item_type)>&, std::shared_ptr<litehtml::render_item>&,
litehtml::iterator_item_type> (__fn=<optimized out>) at /usr/include/c++/13.2.1/bits/invoke.h:150
#5 std::_Function_handler<void(std::shared_ptr<litehtml::render_item>&, litehtml::iterator_item_type), litehtml::render_item_inline_context::_render_
content(int, int, bool, const litehtml::containing_block_context&, litehtml::formatting_context*)::<lambda(const std::shared_ptr<litehtml::render_item
>&, litehtml::iterator_item_type)> >::_M_invoke(const std::_Any_data &, std::shared_ptr<litehtml::render_item> &, litehtml::iterator_item_type &&)
(__functor=<optimized out>, __args#0=<optimized out>, __args#1=<optimized out>) at /usr/include/c++/13.2.1/bits/std_function.h:290
#6 0x00007cb7740ff9e1 in std::function<void (std::shared_ptr<litehtml::render_item>&, litehtml::iterator_item_type)>::operator()(std::shared_ptr<lite
html::render_item>&, litehtml::iterator_item_type) const
(__args#1=<optimized out>, __args#0=std::shared_ptr<litehtml::render_item> (use count 3, weak count 2) = {...}, this=0x7ffcda7c3860)
at /usr/include/c++/13.2.1/bits/std_function.h:591
#7 litehtml::elements_iterator::process(std::shared_ptr<litehtml::render_item> const&, std::function<void (std::shared_ptr<litehtml::render_item>&, l
itehtml::iterator_item_type)> const&) (this=0x7ffcda7c3820, container=<optimized out>, func=...) at litehtml/iterators.cpp:42
#8 0x00007cb77410ecee in litehtml::render_item_inline_context::_render_content
(this=0x61f5674ae310, x=<optimized out>, y=<optimized out>, second_pass=<optimized out>, self_size=..., fmt_ctx=<optimized out>)
at litehtml/render_inline_context.cpp:26
#9 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674ae310, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c3a10, second_pass=true) at litehtml/render_block.cpp:205
#10 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674ae310, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=true) at litehtml/render_item.cpp:50
#11 0x00007cb77411449c in litehtml::render_item_table::_render [770/1006]
(this=<optimized out>, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c3ee0, second_pass=<optimized out>) at litehtml/types.h:258
#12 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f56746e660, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c3ee0, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#13 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674ae100, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c3ee0) at litehtml/types.h:258
#14 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674ae100, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c3ee0, second_pass=false)
at litehtml/render_block.cpp:205
#15 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674ae100, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#16 0x00007cb774113c87 in litehtml::render_item_table::_render
(this=0x61f56746e250, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c43b0, second_pass=<optimized out>) at litehtml/types.h:258
#17 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f56746e250, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c43b0, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#18 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674ad040, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c43b0) at litehtml/types.h:258
#19 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674ad040, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c43b0, second_pass=false)
at litehtml/render_block.cpp:205
#20 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674ad040, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#21 0x00007cb774113d0b in litehtml::render_item_table::_render
(this=0x61f56749c8d0, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c4880, second_pass=<optimized out>) at litehtml/types.h:258
#22 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f56749c8d0, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c4880, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#23 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674ac1b0, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c4880) at litehtml/types.h:258
#24 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674ac1b0, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c4880, second_pass=false)
at litehtml/render_block.cpp:205
#25 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674ac1b0, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#26 0x00007cb774113d0b in litehtml::render_item_table::_render
(this=0x61f56746ca30, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c4d50, second_pass=<optimized out>) at litehtml/types.h:258
#27 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f56746ca30, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c4d50, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#28 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674abf10, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c4d50) at litehtml/types.h:258
#29 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674abf10, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c4d50, second_pass=false)
at litehtml/render_block.cpp:205
#30 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674abf10, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#31 0x00007cb774113c87 in litehtml::render_item_table::_render
(this=0x61f567462ce0, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c5220, second_pass=<optimized out>) at litehtml/types.h:258
#32 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f567462ce0, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c5220, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#33 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674a42c0, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c5220) at litehtml/types.h:258
#34 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674a42c0, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c5220, second_pass=false)
at litehtml/render_block.cpp:205
#35 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674a42c0, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#36 0x00007cb774113d0b in litehtml::render_item_table::_render
(this=0x61f5674618c0, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c56f0, second_pass=<optimized out>) at litehtml/types.h:258
#37 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f5674618c0, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c56f0, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#38 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674a37c0, x=<optimized out>, y=<optimized out>, second_pass=true, self_size=..., fmt_ctx=0x7ffcda7c56f0) at litehtml/types.h:258
#39 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674a37c0, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c56f0, second_pass=true) at litehtml/render_block.cpp:205
#40 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674a37c0, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=true) at litehtml/render_item.cpp:50
#41 0x00007cb77411449c in litehtml::render_item_table::_render
(this=<optimized out>, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c5bc0, second_pass=<optimized out>) at litehtml/types.h:258
#42 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f567451950, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c5bc0, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#43 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674a2370, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c5bc0) at litehtml/types.h:258
#44 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674a2370, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c5bc0, second_pass=false)
at litehtml/render_block.cpp:205
#45 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674a2370, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#46 0x00007cb774113c87 in litehtml::render_item_table::_render
(this=0x61f567451410, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c6090, second_pass=<optimized out>) at litehtml/types.h:258
#47 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f567451410, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c6090, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#48 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674a1580, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c6090) at litehtml/types.h:258
#49 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674a1580, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c6090, second_pass=false)
at litehtml/render_block.cpp:205
#50 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674a1580, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#51 0x00007cb774113d0b in litehtml::render_item_table::_render
(this=0x61f567450ed0, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c6560, second_pass=<optimized out>) at litehtml/types.h:258
#52 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f567450ed0, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c6560, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#53 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674a1d20, x=<optimized out>, y=<optimized out>, second_pass=true, self_size=..., fmt_ctx=0x7ffcda7c6560) at litehtml/types.h:258
#54 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674a1d20, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c6560, second_pass=true) at litehtml/render_block.cpp:205
#55 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674a1d20, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=true) at litehtml/render_item.cpp:50
#56 0x00007cb77411449c in litehtml::render_item_table::_render
(this=<optimized out>, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c6a30, second_pass=<optimized out>) at litehtml/types.h:258
#57 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f56744da20, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c6a30, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#58 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f5674a0350, x=<optimized out>, y=<optimized out>, second_pass=true, self_size=..., fmt_ctx=0x7ffcda7c6a30) at litehtml/types.h:258
#59 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f5674a0350, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c6a30, second_pass=true) at litehtml/render_block.cpp:205
#60 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f5674a0350, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=true) at litehtml/render_item.cpp:50
#61 0x00007cb77411449c in litehtml::render_item_table::_render
(this=<optimized out>, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c6f00, second_pass=<optimized out>) at litehtml/types.h:258
#62 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f5670218e0, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c6f00, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#63 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f56749fbd0, x=<optimized out>, y=<optimized out>, second_pass=true, self_size=..., fmt_ctx=0x7ffcda7c6f00) at litehtml/types.h:258
#64 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f56749fbd0, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c6f00, second_pass=true) at litehtml/render_block.cpp:205
#65 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f56749fbd0, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=true) at litehtml/render_item.cpp:50
#66 0x00007cb77411449c in litehtml::render_item_table::_render
(this=<optimized out>, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c73d0, second_pass=<optimized out>) at litehtml/types.h:258
#67 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f5673b7350, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c73d0, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#68 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f56749fac0, x=<optimized out>, y=<optimized out>, second_pass=true, self_size=..., fmt_ctx=0x7ffcda7c73d0) at litehtml/types.h:258
#69 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f56749fac0, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c73d0, second_pass=true) at litehtml/render_block.cpp:205
#70 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f56749fac0, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=true) at litehtml/render_item.cpp:50
#71 0x00007cb77411449c in litehtml::render_item_table::_render
(this=<optimized out>, x=0, y=0, containing_block_size=..., fmt_ctx=0x7ffcda7c7b60, second_pass=<optimized out>) at litehtml/types.h:258
#72 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f56733a9f0, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c7b60, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#73 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f56749f110, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c7b60) at litehtml/types.h:258
#74 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f56749f110, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c7b60, second_pass=false)
at litehtml/render_block.cpp:205
#75 0x00007cb774109db1 in litehtml::render_item::render
(this=0x61f56749f110, x=x@entry=0, y=y@entry=0, containing_block_size=..., fmt_ctx=fmt_ctx@entry=0x7ffcda7c7b60, second_pass=second_pass@entry=fal
se) at litehtml/render_item.cpp:55
#76 0x00007cb77410a6fc in litehtml::render_item_block_context::_render_content
(this=0x61f56749efe0, x=<optimized out>, y=<optimized out>, second_pass=false, self_size=..., fmt_ctx=0x7ffcda7c7b60) at litehtml/types.h:258
#77 0x00007cb77410e7d4 in litehtml::render_item_block::_render
(this=0x61f56749efe0, x=0, y=0, containing_block_size=<optimized out>, fmt_ctx=0x7ffcda7c7b60, second_pass=false)
at litehtml/render_block.cpp:205
#78 0x00007cb774109e65 in litehtml::render_item::render
(this=0x61f56749efe0, x=0, y=0, containing_block_size=..., fmt_ctx=<optimized out>, second_pass=false) at litehtml/render_item.cpp:50
#79 0x00007cb7740e46b1 in litehtml::document::render (this=0x61f566925e20, max_width=1480, rt=litehtml::render_all) at litehtml/document.cpp:309
#80 0x00007cb7740dbc24 in lh_widget::redraw (this=this@entry=0x61f5667c9be0) at /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1665
#81 0x00007cb7740dbe0a in draw_cb (widget=<optimized out>, cr=cr@entry=0x61f566fb4370, user_data=user_data@entry=0x61f5667c9be0)
at /usr/src/debug/claws-mail/claws-mail-4.2.0/src/plugins/litehtml_viewer/lh_widget.cpp:479```
Thanks
freonheat