Segfault is happening in 3.x x86_64 builds on Ubuntu 20.04. aarch64 builds do not exhibit this problem. Ubuntu22 via WSL does not segfault.
Build flags:
--unoptimized --runtime-mode debug --no-goma --lto --clang --embedder-for-target --full-dart-sdk --target-os linux --linux-cpu x64 --target-triple x86_64-linux-gnu
Repro happens with or without --unoptimized
.
Seg fault happens with: https://github.com/freetype/freetype/blob/3f83daeecb1a78d851b660eed025eeba362c0e4a/src/base/ftobjs.c#L5656
The function that calls it has this note:
https://github.com/freetype/freetype/blob/3f83daeecb1a78d851b660eed025eeba362c0e4a/include/freetype/ftcolor.h#L1620
- @since: * 2.11 -- currently experimental only! There might be changes without retaining backward compatibility of both the API and ABI.
It looks like it happens when it is trying to display the hello world text: "Futter Demo Home Page"
https://github.com/google/skia/blob/main/modules/skparagraph/src/OneLineShaper.cpp#L705
libfreetype.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libflutter_engine.so!FT_Get_Color_Glyph_Paint(FT_Face face, FT_UInt base_glyph, FT_Color_Root_Transform root_transform, FT_OpaquePaint * paint) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\freetype2\src\base\ftobjs.c:5737)
libflutter_engine.so!SkScalerContext_FreeType::generateMetrics(SkScalerContext_FreeType * this, SkGlyph * glyph, SkArenaAlloc * alloc) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\ports\SkFontHost_FreeType.cpp:1174)
libflutter_engine.so!SkScalerContext::internalMakeGlyph(SkScalerContext * this, SkPackedGlyphID packedID, SkMask::Format format, SkArenaAlloc * alloc) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkScalerContext.cpp:190)
libflutter_engine.so!SkScalerContext::makeGlyph(SkScalerContext * this, SkPackedGlyphID packedID, SkArenaAlloc * alloc) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkScalerContext.cpp:183)
libflutter_engine.so!SkScalerCache::digest(SkScalerCache * this, SkPackedGlyphID packedGlyphID) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkScalerCache.cpp:50)
libflutter_engine.so!SkScalerCache::glyph(SkScalerCache * this, SkPackedGlyphID packedGlyphID) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkScalerCache.cpp:39)
libflutter_engine.so!SkScalerCache::internalPrepare(SkScalerCache * this, SkSpan<unsigned short const> glyphIDs, SkScalerCache::PathDetail pathDetail, const SkGlyph ** results) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkScalerCache.cpp:116)
libflutter_engine.so!SkScalerCache::metrics(SkScalerCache * this, SkSpan<unsigned short const> glyphIDs, const SkGlyph ** results) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkScalerCache.cpp:164)
libflutter_engine.so!SkStrike::metrics(SkStrike * this, SkSpan<unsigned short const> glyphIDs, const SkGlyph ** results) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkStrikeCache.h:87)
libflutter_engine.so!SkBulkGlyphMetrics::glyphs(SkBulkGlyphMetrics * this, SkSpan<unsigned short const> glyphIDs) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkStrikeSpec.cpp:232)
libflutter_engine.so!SkFont::getWidthsBounds(const SkFont * this, const SkGlyphID * glyphIDs, int count, SkScalar * widths, SkRect * bounds, const SkPaint * paint) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\src\core\SkFont.cpp:212)
libflutter_engine.so!SkFont::getWidths(const SkFont * this, const SkGlyphID * glyphs, int count, SkScalar * widths) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\include\core\SkFont.h:385)
libflutter_engine.so!(anonymous namespace)::skhb_glyph_h_advances(hb_font_t * hb_font, void * font_data, unsigned int count, const hb_codepoint_t * glyphs, unsigned int glyph_stride, hb_position_t * advances, unsigned int advance_stride, void * user_data) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skshaper\src\SkShaper_harfbuzz.cpp:156)
libflutter_engine.so!hb_font_t::get_glyph_h_advances(hb_font_t * this, unsigned int count, const hb_codepoint_t * first_glyph, unsigned int glyph_stride, hb_position_t * first_advance, unsigned int advance_stride) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-font.hh:271)
libflutter_engine.so!hb_ot_position_default(const hb_ot_shape_context_t * c) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-ot-shape.cc:1008)
libflutter_engine.so!hb_ot_position(const hb_ot_shape_context_t * c) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-ot-shape.cc:1116)
libflutter_engine.so!hb_ot_shape_internal(hb_ot_shape_context_t * c) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-ot-shape.cc:1191)
libflutter_engine.so!_hb_ot_shape(hb_shape_plan_t * shape_plan, hb_font_t * font, hb_buffer_t * buffer, const hb_feature_t * features, unsigned int num_features) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-ot-shape.cc:1214)
libflutter_engine.so!_hb_shape_plan_execute_internal(hb_shape_plan_t * shape_plan, hb_font_t * font, hb_buffer_t * buffer, const hb_feature_t * features, unsigned int num_features) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-shaper-list.hh:42)
libflutter_engine.so!hb_shape_plan_execute(hb_shape_plan_t * shape_plan, hb_font_t * font, hb_buffer_t * buffer, const hb_feature_t * features, unsigned int num_features) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-shape-plan.cc:453)
libflutter_engine.so!hb_shape_full(hb_font_t * font, hb_buffer_t * buffer, const hb_feature_t * features, unsigned int num_features, const char * const * shaper_list) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-shape.cc:133)
libflutter_engine.so!hb_shape(hb_font_t * font, hb_buffer_t * buffer, const hb_feature_t * features, unsigned int num_features) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\harfbuzz\src\hb-shape.cc:161)
libflutter_engine.so!(anonymous namespace)::ShaperHarfBuzz::shape(const (anonymous namespace)::ShaperHarfBuzz * this, const char * const utf8, const size_t utf8Bytes, const char * const utf8Start, const char * const utf8End, const SkShaper::BiDiRunIterator & bidi, const SkShaper::LanguageRunIterator & language, const SkShaper::ScriptRunIterator & script, const SkShaper::FontRunIterator & font, const SkShaper::Feature * const features, const size_t featuresSize) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skshaper\src\SkShaper_harfbuzz.cpp:1395)
libflutter_engine.so!(anonymous namespace)::ShapeDontWrapOrReorder::wrap(const (anonymous namespace)::ShapeDontWrapOrReorder * this, const char * const utf8, size_t utf8Bytes, const SkShaper::BiDiRunIterator & bidi, const SkShaper::LanguageRunIterator & language, const SkShaper::ScriptRunIterator & script, const SkShaper::FontRunIterator & font, (anonymous namespace)::RunIteratorQueue & runSegmenter, const SkShaper::Feature * features, size_t featuresSize, SkScalar width, SkShaper::RunHandler * handler) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skshaper\src\SkShaper_harfbuzz.cpp:1241)
libflutter_engine.so!(anonymous namespace)::ShaperHarfBuzz::shape(const (anonymous namespace)::ShaperHarfBuzz * this, const char * utf8, size_t utf8Bytes, SkShaper::FontRunIterator & font, SkShaper::BiDiRunIterator & bidi, SkShaper::ScriptRunIterator & script, SkShaper::LanguageRunIterator & language, const SkShaper::Feature * features, size_t featuresSize, SkScalar width, SkShaper::RunHandler * handler) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skshaper\src\SkShaper_harfbuzz.cpp:864)
libflutter_engine.so!skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const::{lambda(sk_sp<SkTypeface>)#1}::operator()(SkTypeface) const(const class {...} * this, sk_sp<SkTypeface> typeface) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\OneLineShaper.cpp:693)
libflutter_engine.so!std::__1::__invoke<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const::{lambda(sk_sp<SkTypeface>)#1}&, SkTypeface>(class {...} & __f, sk_sp<SkTypeface> && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\type_traits:3530)
libflutter_engine.so!std::__1::__invoke_void_return_wrapper<skia::textlayout::OneLineShaper::Resolved>::__call<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const::{lambda(sk_sp<SkTypeface>)#1}&, SkTypeface>(skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const::{lambda(sk_sp<SkTypeface>)#1}&, SkTypeface&&)(sk_sp<SkTypeface> && __args, sk_sp<SkTypeface> && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\__functional_base:317)
libflutter_engine.so!std::__1::__function::__alloc_func<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const::{lambda(sk_sp<SkTypeface>)#1}, std::__1::allocator<sk_sp<SkTypeface> >, skia::textlayout::OneLineShaper::Resolved (SkTypeface)>::operator()(SkTypeface&&)(std::__1::__function::__alloc_func<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:653:52), std::__1::allocator<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:653:52)>, skia::textlayout::OneLineShaper::Resolved (sk_sp<SkTypeface>)> * this, sk_sp<SkTypeface> && __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1533)
libflutter_engine.so!std::__1::__function::__func<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const::{lambda(sk_sp<SkTypeface>)#1}, std::__1::allocator<sk_sp<SkTypeface> >, skia::textlayout::OneLineShaper::Resolved (SkTypeface)>::operator()(SkTypeface&&)(std::__1::__function::__func<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:653:52), std::__1::allocator<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:653:52)>, skia::textlayout::OneLineShaper::Resolved (sk_sp<SkTypeface>)> * this, sk_sp<SkTypeface> && __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1707)
libflutter_engine.so!std::__1::__function::__value_func<skia::textlayout::OneLineShaper::Resolved (sk_sp<SkTypeface>)>::operator()(sk_sp<SkTypeface>&&) const(const std::__1::__function::__value_func<skia::textlayout::OneLineShaper::Resolved (sk_sp<SkTypeface>)> * this, sk_sp<SkTypeface> && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1860)
libflutter_engine.so!std::__1::function<skia::textlayout::OneLineShaper::Resolved (sk_sp<SkTypeface>)>::operator()(sk_sp<SkTypeface>) const(const std::__1::function<skia::textlayout::OneLineShaper::Resolved (sk_sp<SkTypeface>)> * this, sk_sp<SkTypeface> __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:2419)
libflutter_engine.so!skia::textlayout::OneLineShaper::matchResolvedFonts(skia::textlayout::TextStyle const&, std::__1::function<skia::textlayout::OneLineShaper::Resolved (sk_sp<SkTypeface>)> const&)(skia::textlayout::OneLineShaper * this, const skia::textlayout::TextStyle & textStyle, const skia::textlayout::OneLineShaper::TypefaceVisitor & visitor) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\OneLineShaper.cpp:482)
libflutter_engine.so!skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const(const class {...} * this, skia::textlayout::Block block, SkTArray<SkShaper::Feature, false> features) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\OneLineShaper.cpp:653)
libflutter_engine.so!std::__1::__invoke<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}&, skia::textlayout::Block, SkTArray<SkShaper::Feature, false> >(class {...} & __f, SkTArray<SkShaper::Feature, false> && __args, SkTArray<SkShaper::Feature, false> && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\type_traits:3530)
libflutter_engine.so!std::__1::__invoke_void_return_wrapper<void>::__call<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}&, skia::textlayout::Block, SkTArray<SkShaper::Feature, false> >(skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}&, skia::textlayout::Block&&, SkTArray<SkShaper::Feature, false>&&)(SkTArray<SkShaper::Feature, false> && __args, SkTArray<SkShaper::Feature, false> && __args, SkTArray<SkShaper::Feature, false> && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\__functional_base:348)
libflutter_engine.so!std::__1::__function::__alloc_func<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}, std::__1::allocator<{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}>, void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)>::operator()(skia::textlayout::Block&&, SkTArray<SkShaper::Feature, false>&&)(std::__1::__function::__alloc_func<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:641:17), std::__1::allocator<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:641:17)>, void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)> * this, SkTArray<SkShaper::Feature, false> && __arg, SkTArray<SkShaper::Feature, false> && __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1533)
libflutter_engine.so!std::__1::__function::__func<skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const::{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}, std::__1::allocator<{lambda(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)#1}>, void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)>::operator()(skia::textlayout::Block&&, SkTArray<SkShaper::Feature, false>&&)(std::__1::__function::__func<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:641:17), std::__1::allocator<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:641:17)>, void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)> * this, SkTArray<SkShaper::Feature, false> && __arg, SkTArray<SkShaper::Feature, false> && __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1707)
libflutter_engine.so!std::__1::__function::__value_func<void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)>::operator()(skia::textlayout::Block&&, SkTArray<SkShaper::Feature, false>&&) const(const std::__1::__function::__value_func<void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)> * this, SkTArray<SkShaper::Feature, false> && __args, SkTArray<SkShaper::Feature, false> && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1860)
libflutter_engine.so!std::__1::function<void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)>::operator()(skia::textlayout::Block, SkTArray<SkShaper::Feature, false>) const(const std::__1::function<void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)> * this, SkTArray<SkShaper::Feature, false> __arg, SkTArray<SkShaper::Feature, false> __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:2419)
libflutter_engine.so!skia::textlayout::OneLineShaper::iterateThroughFontStyles(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, std::__1::function<void (skia::textlayout::Block, SkTArray<SkShaper::Feature, false>)> const&)(skia::textlayout::OneLineShaper * this, skia::textlayout::TextRange textRange, SkSpan<skia::textlayout::Block> styleSpan, const skia::textlayout::OneLineShaper::ShapeSingleFontVisitor & visitor) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\OneLineShaper.cpp:471)
libflutter_engine.so!skia::textlayout::OneLineShaper::shape()::$_7::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const(const class {...} * this, skia::textlayout::TextRange textRange, SkSpan<skia::textlayout::Block> styleSpan, SkScalar & advanceX, skia::textlayout::TextIndex textStart, uint8_t defaultBidiLevel) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\OneLineShaper.cpp:640)
libflutter_engine.so!std::__1::__invoke<skia::textlayout::OneLineShaper::shape()::$_7&, skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char>(class {...} & __f, unsigned char && __args, unsigned char && __args, unsigned char && __args, unsigned char && __args, unsigned char && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\type_traits:3530)
libflutter_engine.so!std::__1::__invoke_void_return_wrapper<float>::__call<skia::textlayout::OneLineShaper::shape()::$_7&, skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char>(skia::textlayout::OneLineShaper::shape()::$_7&, skia::textlayout::SkRange<unsigned long>&&, SkSpan<skia::textlayout::Block>&&, float&, unsigned long&&, unsigned char&&)(unsigned char && __args, unsigned char && __args, unsigned char && __args, unsigned char && __args, unsigned char && __args, unsigned char && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\__functional_base:317)
libflutter_engine.so!std::__1::__function::__alloc_func<skia::textlayout::OneLineShaper::shape()::$_7, std::__1::allocator<skia::textlayout::OneLineShaper::shape()::$_7>, float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char)>::operator()(skia::textlayout::SkRange<unsigned long>&&, SkSpan<skia::textlayout::Block>&&, float&, unsigned long&&, unsigned char&&)(std::__1::__function::__alloc_func<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:630:13), std::__1::allocator<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:630:13)>, float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float &, unsigned long, unsigned char)> * this, unsigned char && __arg, unsigned char && __arg, unsigned char && __arg, unsigned char && __arg, unsigned char && __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1533)
libflutter_engine.so!std::__1::__function::__func<skia::textlayout::OneLineShaper::shape()::$_7, std::__1::allocator<skia::textlayout::OneLineShaper::shape()::$_7>, float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char)>::operator()(skia::textlayout::SkRange<unsigned long>&&, SkSpan<skia::textlayout::Block>&&, float&, unsigned long&&, unsigned char&&)(std::__1::__function::__func<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:630:13), std::__1::allocator<(lambda at ../../third_party/skia/modules/skparagraph/src/OneLineShaper.cpp:630:13)>, float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float &, unsigned long, unsigned char)> * this, unsigned char && __arg, unsigned char && __arg, unsigned char && __arg, unsigned char && __arg, unsigned char && __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1707)
libflutter_engine.so!std::__1::__function::__value_func<float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char)>::operator()(skia::textlayout::SkRange<unsigned long>&&, SkSpan<skia::textlayout::Block>&&, float&, unsigned long&&, unsigned char&&) const(const std::__1::__function::__value_func<float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float &, unsigned long, unsigned char)> * this, unsigned char && __args, unsigned char && __args, unsigned char && __args, unsigned char && __args, unsigned char && __args) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:1860)
libflutter_engine.so!std::__1::function<float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char)>::operator()(skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char) const(const std::__1::function<float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float &, unsigned long, unsigned char)> * this, unsigned char __arg, unsigned char __arg, unsigned char __arg, unsigned char __arg, unsigned char __arg) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\libcxx\include\functional:2419)
libflutter_engine.so!skia::textlayout::OneLineShaper::iterateThroughShapingRegions(std::__1::function<float (skia::textlayout::SkRange<unsigned long>, SkSpan<skia::textlayout::Block>, float&, unsigned long, unsigned char)> const&)(skia::textlayout::OneLineShaper * this, const skia::textlayout::OneLineShaper::ShapeVisitor & shape) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\OneLineShaper.cpp:574)
libflutter_engine.so!skia::textlayout::OneLineShaper::shape(skia::textlayout::OneLineShaper * this) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\OneLineShaper.cpp:629)
libflutter_engine.so!skia::textlayout::ParagraphImpl::shapeTextIntoEndlessLine(skia::textlayout::ParagraphImpl * this) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\ParagraphImpl.cpp:415)
libflutter_engine.so!skia::textlayout::ParagraphImpl::layout(skia::textlayout::ParagraphImpl * this, SkScalar rawWidth) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\skia\modules\skparagraph\src\ParagraphImpl.cpp:142)
libflutter_engine.so!txt::ParagraphSkia::Layout(txt::ParagraphSkia * this, double width) (\home\aik\repos\flutter_embedded\third_party\engine\src\flutter\third_party\txt\src\skia\paragraph_skia.cc:166)
libflutter_engine.so!flutter::Paragraph::layout(flutter::Paragraph * this, double width) (\home\aik\repos\flutter_embedded\third_party\engine\src\flutter\lib\ui\text\paragraph.cc:87)
libflutter_engine.so!tonic::DartDispatcher<tonic::IndicesHolder<0ul>, void (flutter::Paragraph::*)(double)>::Dispatch(tonic::DartDispatcher<tonic::IndicesHolder<0ul>, void (flutter::Paragraph::*)(double)> * this, tonic::DartDispatcher<tonic::IndicesHolder<0ul>, void (flutter::Paragraph::*)(double)>::FunctionPtr func) (\home\aik\repos\flutter_embedded\third_party\engine\src\flutter\third_party\tonic\dart_args.h:159)
libflutter_engine.so!tonic::DartCall<void (flutter::Paragraph::*)(double)>(void (flutter::Paragraph::*)(flutter::Paragraph * const, double) func, Dart_NativeArguments args) (\home\aik\repos\flutter_embedded\third_party\engine\src\flutter\third_party\tonic\dart_args.h:216)
libflutter_engine.so!flutter::Paragraph_layout(Dart_NativeArguments args) (\home\aik\repos\flutter_embedded\third_party\engine\src\flutter\lib\ui\text\paragraph.cc:40)
libflutter_engine.so!dart::NativeEntry::AutoScopeNativeCallWrapperNoStackCheck(Dart_NativeArguments args, Dart_NativeFunction func) (\home\aik\repos\flutter_embedded\third_party\engine\src\third_party\dart\runtime\vm\native_entry.cc:217)
[Unknown/Just-In-Time compiled code] (Unknown Source:0)
@aikalant