MohamedRejeb / compose-rich-editor

A Rich text editor library for both Jetpack Compose and Compose Multiplatform, fully customizable, supports HTML and Markdown.
https://mohamedrejeb.github.io/compose-rich-editor/
Apache License 2.0
1.17k stars 76 forks source link

Crash on iOS with compose 1.7.0-rc01 when fast typing 'return/enter' button #390

Open GimazDo opened 1 month ago

GimazDo commented 1 month ago

When using compose 1.7.0-rc01 application crash when fast typing 'return/enter' button. Sometimes it happens when fast typing multiline text

Here minimal reproduce example. https://github.com/GimazDo/KMPExample You can find app in examples/ruch-text-editor

Logs

Uncaught Kotlin exception: kotlin.IllegalStateException: OffsetMapping.transformedToOriginal returned invalid mapping: 97 -> 97 is not in range of original text [0, 96]
    at 0   KMPExampleRichText.debug.dylib      0x107b5554b        kfun:kotlin.Throwable#<init>(kotlin.String?){} + 119 
    at 1   KMPExampleRichText.debug.dylib      0x107b4ea13        kfun:kotlin.Exception#<init>(kotlin.String?){} + 115 
    at 2   KMPExampleRichText.debug.dylib      0x107b4ec33        kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 115 
    at 3   KMPExampleRichText.debug.dylib      0x107b4f1d3        kfun:kotlin.IllegalStateException#<init>(kotlin.String?){} + 115 
    at 4   KMPExampleRichText.debug.dylib      0x1078dfb03        kfun:androidx.compose.foundation.text.validateTransformedToOriginal#internal + 731 
    at 5   KMPExampleRichText.debug.dylib      0x1078df18b        kfun:androidx.compose.foundation.text#throwIfNotValidTransform__at__androidx.compose.ui.text.input.TransformedText(kotlin.Int;kotlin.Int){} + 779 
    at 6   KMPExampleRichText.debug.dylib      0x1078df283        kfun:androidx.compose.foundation.text#throwIfNotValidTransform$default__at__androidx.compose.ui.text.input.TransformedText(kotlin.Int;kotlin.Int;kotlin.Int){} + 207 
    at 7   KMPExampleRichText.debug.dylib      0x1078ded6b        kfun:androidx.compose.foundation.text#filterWithValidation__at__androidx.compose.ui.text.input.VisualTransformation(androidx.compose.ui.text.AnnotatedString){}androidx.compose.ui.text.input.TransformedText + 343 
    at 8   KMPExampleRichText.debug.dylib      0x107949bd3        kfun:androidx.compose.foundation.text#textFieldScroll__at__androidx.compose.ui.Modifier(androidx.compose.foundation.text.TextFieldScrollerPosition;androidx.compose.ui.text.input.TextFieldValue;androidx.compose.ui.text.input.VisualTransformation;kotlin.Function0<androidx.compose.foundation.text.TextLayoutResultProxy?>){}androidx.compose.ui.Modifier + 495 
    at 9   KMPExampleRichText.debug.dylib      0x1078ade63        kfun:androidx.compose.foundation.text.CoreTextField$lambda$35$lambda$34#internal + 2067 
    at 10  KMPExampleRichText.debug.dylib      0x1078b7347        kfun:androidx.compose.foundation.text.$CoreTextField$lambda$35$lambda$34$FUNCTION_REFERENCE$66.invoke#internal + 259 
    at 11  KMPExampleRichText.debug.dylib      0x1078b77df        kfun:androidx.compose.foundation.text.$CoreTextField$lambda$35$lambda$34$FUNCTION_REFERENCE$66.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 12  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 13  KMPExampleRichText.debug.dylib      0x107e62ab7        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 603 
    at 14  KMPExampleRichText.debug.dylib      0x107e69617        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.invoke$invoke#internal + 171 
    at 15  KMPExampleRichText.debug.dylib      0x107e6c863        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.$invoke$FUNCTION_REFERENCE$0.invoke#internal + 115 
    at 16  KMPExampleRichText.debug.dylib      0x107e6ca1b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.$invoke$FUNCTION_REFERENCE$0.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 17  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 18  KMPExampleRichText.debug.dylib      0x107d69a2b        kfun:androidx.compose.runtime.RecomposeScopeImpl#compose(androidx.compose.runtime.Composer){} + 767 
    at 19  KMPExampleRichText.debug.dylib      0x107d350db        kfun:androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd#internal + 1435 
    at 20  KMPExampleRichText.debug.dylib      0x107d383ff        kfun:androidx.compose.runtime.ComposerImpl#skipToGroupEnd(){} + 371 
    at 21  KMPExampleRichText.debug.dylib      0x107e7abd7        kfun:androidx.compose.runtime.Composer#skipToGroupEnd(){}-trampoline + 91 
    at 22  KMPExampleRichText.debug.dylib      0x1081ecba3        kfun:com.mohamedrejeb.richeditor.ui.material3#TextFieldLayout(androidx.compose.ui.Modifier;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function3<androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Boole + 24503 
    at 23  KMPExampleRichText.debug.dylib      0x10821392f        kfun:com.mohamedrejeb.richeditor.ui.material3.CommonDecorationBox$lambda$10#internal + 6039 
    at 24  KMPExampleRichText.debug.dylib      0x108214ddf        kfun:com.mohamedrejeb.richeditor.ui.material3.$CommonDecorationBox$lambda$10$FUNCTION_REFERENCE$1.invoke#internal + 315 
    at 25  KMPExampleRichText.debug.dylib      0x1082152cb        kfun:com.mohamedrejeb.richeditor.ui.material3.$CommonDecorationBox$lambda$10$FUNCTION_REFERENCE$1.$<bridge-DNNUUUUNU>invoke(kotlin.Float;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;kotlin.Float;androidx.compose.runtime.Composer;kotlin.Int){}#internal + 339 
    at 26  KMPExampleRichText.debug.dylib      0x107c9189b        kfun:kotlin.Function6#invoke(1:0;1:1;1:2;1:3;1:4;1:5){}1:6-trampoline + 147 
    at 27  KMPExampleRichText.debug.dylib      0x107e639eb        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(kotlin.Any?;kotlin.Any?;kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 763 
    at 28  KMPExampleRichText.debug.dylib      0x107e71a1f        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNNNNNU>invoke(kotlin.Any?;kotlin.Any?;kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(kotlin.Any?;kotlin.Any?;kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 311 
    at 29  KMPExampleRichText.debug.dylib      0x107c9189b        kfun:kotlin.Function6#invoke(1:0;1:1;1:2;1:3;1:4;1:5){}1:6-trampoline + 147 
    at 30  KMPExampleRichText.debug.dylib      0x108209d97        kfun:com.mohamedrejeb.richeditor.ui.material3.TextFieldTransitionScope.Transition#internal + 13551 
    at 31  KMPExampleRichText.debug.dylib      0x108205afb        kfun:com.mohamedrejeb.richeditor.ui.material3#CommonDecorationBox(com.mohamedrejeb.richeditor.ui.material3.TextFieldType;kotlin.String;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.text.input.VisualTransformation;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<andr + 8903 
    at 32  KMPExampleRichText.debug.dylib      0x1081fbcbf        kfun:com.mohamedrejeb.richeditor.ui.material3.RichTextEditorDefaults#RichTextEditorDecorationBox(kotlin.String;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Boolean;kotlin.Boolean;androidx.compose.ui.text.input.VisualTransformation;androidx.compose.foundation.interaction.InteractionSource;kotlin.Boolean;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<a + 8623 
    at 33  KMPExampleRichText.debug.dylib      0x1081f380f        kfun:com.mohamedrejeb.richeditor.ui.material3.RichTextEditor$lambda$1$lambda$0#internal + 1771 
    at 34  KMPExampleRichText.debug.dylib      0x1081f62ff        kfun:com.mohamedrejeb.richeditor.ui.material3.$RichTextEditor$lambda$1$lambda$0$FUNCTION_REFERENCE$9.invoke#internal + 231 
    at 35  KMPExampleRichText.debug.dylib      0x1081f669f        kfun:com.mohamedrejeb.richeditor.ui.material3.$RichTextEditor$lambda$1$lambda$0$FUNCTION_REFERENCE$9.$<bridge-DNNNNU>invoke(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer;kotlin.Int){}#internal + 195 
    at 36  KMPExampleRichText.debug.dylib      0x107c80913        kfun:kotlin.Function3#invoke(1:0;1:1;1:2){}1:3-trampoline + 123 
    at 37  KMPExampleRichText.debug.dylib      0x107e62e23        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 635 
    at 38  KMPExampleRichText.debug.dylib      0x107e7162f        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNNU>invoke(kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 199 
    at 39  KMPExampleRichText.debug.dylib      0x107c80913        kfun:kotlin.Function3#invoke(1:0;1:1;1:2){}1:3-trampoline + 123 
    at 40  KMPExampleRichText.debug.dylib      0x1078ae6c7        kfun:androidx.compose.foundation.text.CoreTextField$lambda$35#internal + 1475 
    at 41  KMPExampleRichText.debug.dylib      0x1078b3dfb        kfun:androidx.compose.foundation.text.$CoreTextField$lambda$35$FUNCTION_REFERENCE$38.invoke#internal + 267 
    at 42  KMPExampleRichText.debug.dylib      0x1078b42c3        kfun:androidx.compose.foundation.text.$CoreTextField$lambda$35$FUNCTION_REFERENCE$38.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 43  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 44  KMPExampleRichText.debug.dylib      0x107e62ab7        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 603 
    at 45  KMPExampleRichText.debug.dylib      0x107e69617        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.invoke$invoke#internal + 171 
    at 46  KMPExampleRichText.debug.dylib      0x107e6c863        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.$invoke$FUNCTION_REFERENCE$0.invoke#internal + 115 
    at 47  KMPExampleRichText.debug.dylib      0x107e6ca1b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.$invoke$FUNCTION_REFERENCE$0.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 48  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 49  KMPExampleRichText.debug.dylib      0x107d69a2b        kfun:androidx.compose.runtime.RecomposeScopeImpl#compose(androidx.compose.runtime.Composer){} + 767 
    at 50  KMPExampleRichText.debug.dylib      0x107d350db        kfun:androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd#internal + 1435 
    at 51  KMPExampleRichText.debug.dylib      0x107d383ff        kfun:androidx.compose.runtime.ComposerImpl#skipToGroupEnd(){} + 371 
    at 52  KMPExampleRichText.debug.dylib      0x107e7abd7        kfun:androidx.compose.runtime.Composer#skipToGroupEnd(){}-trampoline + 91 
    at 53  KMPExampleRichText.debug.dylib      0x10792302b        kfun:androidx.compose.foundation.text#ContextMenuArea(androidx.compose.foundation.text.selection.TextFieldSelectionManager;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 899 
    at 54  KMPExampleRichText.debug.dylib      0x10789fc07        kfun:androidx.compose.foundation.text.CoreTextFieldRootBox#internal + 4035 
    at 55  KMPExampleRichText.debug.dylib      0x10789e9b3        kfun:androidx.compose.foundation.text#CoreTextField(androidx.compose.ui.text.input.TextFieldValue;kotlin.Function1<androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit>;androidx.compose.ui.Modifier?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.input.VisualTransformation?;kotlin.Function1<androidx.compose.ui.text.TextLayoutResult,kotlin.Unit>?;androidx.compose.foundation.interaction.MutableInteractionSource?;androidx.compose.ui.graphics.Brush?;kotlin.Boolean;kotlin.Int;kotlin.Int;androi + 32955 
    at 56  KMPExampleRichText.debug.dylib      0x107893527        kfun:androidx.compose.foundation.text#BasicTextField(androidx.compose.ui.text.input.TextFieldValue;kotlin.Function1<androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Boolean;kotlin.Boolean;androidx.compose.ui.text.TextStyle?;androidx.compose.foundation.text.KeyboardOptions?;androidx.compose.foundation.text.KeyboardActions?;kotlin.Boolean;kotlin.Int;kotlin.Int;androidx.compose.ui.text.input.VisualTransformation?;kotlin.Function1<androidx.compose.ui.text.TextLayo + 8763 
    at 57  KMPExampleRichText.debug.dylib      0x1081d187b        kfun:com.mohamedrejeb.richeditor.ui.BasicRichTextEditor$lambda$10#internal + 5411 
    at 58  KMPExampleRichText.debug.dylib      0x1081d242f        kfun:com.mohamedrejeb.richeditor.ui.$BasicRichTextEditor$lambda$10$FUNCTION_REFERENCE$5.invoke#internal + 267 
    at 59  KMPExampleRichText.debug.dylib      0x1081d2907        kfun:com.mohamedrejeb.richeditor.ui.$BasicRichTextEditor$lambda$10$FUNCTION_REFERENCE$5.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 60  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 61  KMPExampleRichText.debug.dylib      0x107e62ab7        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 603 
    at 62  KMPExampleRichText.debug.dylib      0x107e69617        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.invoke$invoke#internal + 171 
    at 63  KMPExampleRichText.debug.dylib      0x107e6c863        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.$invoke$FUNCTION_REFERENCE$0.invoke#internal + 115 
    at 64  KMPExampleRichText.debug.dylib      0x107e6ca1b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl.$invoke$FUNCTION_REFERENCE$0.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 65  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 66  KMPExampleRichText.debug.dylib      0x107d69a2b        kfun:androidx.compose.runtime.RecomposeScopeImpl#compose(androidx.compose.runtime.Composer){} + 767 
    at 67  KMPExampleRichText.debug.dylib      0x107d350db        kfun:androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd#internal + 1435 
    at 68  KMPExampleRichText.debug.dylib      0x107d37bc7        kfun:androidx.compose.runtime.ComposerImpl#skipCurrentGroup(){} + 1955 
    at 69  KMPExampleRichText.debug.dylib      0x107d3cf83        kfun:androidx.compose.runtime.ComposerImpl.doCompose#internal + 2959 
    at 70  KMPExampleRichText.debug.dylib      0x107d3c37f        kfun:androidx.compose.runtime.ComposerImpl#recompose(androidx.compose.runtime.collection.ScopeMap<androidx.compose.runtime.RecomposeScopeImpl,kotlin.Any>){}kotlin.Boolean + 487 
    at 71  KMPExampleRichText.debug.dylib      0x107d517ff        kfun:androidx.compose.runtime.CompositionImpl#recompose(){}kotlin.Boolean + 919 
    at 72  KMPExampleRichText.debug.dylib      0x107e7d427        kfun:androidx.compose.runtime.ControlledComposition#recompose(){}kotlin.Boolean-trampoline + 91 
    at 73  KMPExampleRichText.debug.dylib      0x107d74a0f        kfun:androidx.compose.runtime.Recomposer.performRecompose#internal + 1451 
    at 74  KMPExampleRichText.debug.dylib      0x107d7c087        kfun:androidx.compose.runtime.Recomposer.runRecomposeAndApplyChanges$lambda$4$lambda$3#internal + 2619 
    at 75  KMPExampleRichText.debug.dylib      0x107d81ea3        kfun:androidx.compose.runtime.Recomposer.$runRecomposeAndApplyChanges$lambda$4$lambda$3$FUNCTION_REFERENCE$13.invoke#internal + 131 
    at 76  KMPExampleRichText.debug.dylib      0x107d8211f        kfun:androidx.compose.runtime.Recomposer.$runRecomposeAndApplyChanges$lambda$4$lambda$3$FUNCTION_REFERENCE$13.$<bridge-DNNU>invoke(kotlin.Long){}#internal + 123 
    at 77  KMPExampleRichText.debug.dylib      0x107c7bfe3        kfun:kotlin.Function1#invoke(1:0){}1:1-trampoline + 107 
    at 78  KMPExampleRichText.debug.dylib      0x107d1ddc7        kfun:androidx.compose.runtime.BroadcastFrameClock.FrameAwaiter.resume#internal + 439 
    at 79  KMPExampleRichText.debug.dylib      0x107d1e68f        kfun:androidx.compose.runtime.BroadcastFrameClock#sendFrame(kotlin.Long){} + 611 
    at 80  KMPExampleRichText.debug.dylib      0x10803293b        kfun:androidx.compose.ui.scene.BaseComposeScene#render(androidx.compose.ui.graphics.Canvas;kotlin.Long){} + 1395 
    at 81  KMPExampleRichText.debug.dylib      0x10811c0f7        kfun:androidx.compose.ui.scene.ComposeScene#render(androidx.compose.ui.graphics.Canvas;kotlin.Long){}-trampoline + 107 
    at 82  KMPExampleRichText.debug.dylib      0x10809e2bf        kfun:androidx.compose.ui.scene.ComposeSceneMediator#render(androidx.compose.ui.graphics.Canvas;kotlin.Long){} + 187 
    at 83  KMPExampleRichText.debug.dylib      0x10809329b        kfun:androidx.compose.ui.scene.ComposeHostingViewController.<init>$lambda$2$lambda$1#internal + 271 
    at 84  KMPExampleRichText.debug.dylib      0x1080959a7        kfun:androidx.compose.ui.scene.ComposeHostingViewController.$<init>$lambda$2$lambda$1$FUNCTION_REFERENCE$10.invoke#internal + 115 
    at 85  KMPExampleRichText.debug.dylib      0x108095acf        kfun:androidx.compose.ui.scene.ComposeHostingViewController.$<init>$lambda$2$lambda$1$FUNCTION_REFERENCE$10.$<bridge-DNNNU>invoke(org.jetbrains.skia.Canvas;kotlin.Long){}#internal + 159 
    at 86  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 87  KMPExampleRichText.debug.dylib      0x1080f1acf        kfun:androidx.compose.ui.window.MetalView.<init>$lambda$0#internal + 279 
    at 88  KMPExampleRichText.debug.dylib      0x1080f1b67        kfun:androidx.compose.ui.window.MetalView.$<init>$lambda$0$FUNCTION_REFERENCE$4.invoke#internal + 115 
    at 89  KMPExampleRichText.debug.dylib      0x1080f1c8f        kfun:androidx.compose.ui.window.MetalView.$<init>$lambda$0$FUNCTION_REFERENCE$4.$<bridge-DNNNU>invoke(org.jetbrains.skia.Canvas;kotlin.Double){}#internal + 159 
    at 90  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 91  KMPExampleRichText.debug.dylib      0x1080e7c0f        kfun:androidx.compose.ui.window.MetalRedrawer.draw#internal + 4403 
    at 92  KMPExampleRichText.debug.dylib      0x1080ea99b        kfun:androidx.compose.ui.window.MetalRedrawer.<init>$lambda$1#internal + 443 
    at 93  KMPExampleRichText.debug.dylib      0x1080ed25b        kfun:androidx.compose.ui.window.MetalRedrawer.$<init>$lambda$1$FUNCTION_REFERENCE$5.invoke#internal + 71 
    at 94  KMPExampleRichText.debug.dylib      0x1080ed32b        kfun:androidx.compose.ui.window.MetalRedrawer.$<init>$lambda$1$FUNCTION_REFERENCE$5.$<bridge-DNN>invoke(){}#internal + 71 
    at 95  KMPExampleRichText.debug.dylib      0x107c7d3ff        kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99 
    at 96  KMPExampleRichText.debug.dylib      0x1080ee0db        kfun:androidx.compose.ui.window.DisplayLinkProxy.handleDisplayLinkTick#internal + 155 
    at 97  KMPExampleRichText.debug.dylib      0x1080ee19b        kfun:androidx.compose.ui.window.DisplayLinkProxy.$imp:handleDisplayLinkTick#internal + 155 
    at 98  QuartzCore                          0x18ffe0077        <redacted> + 47 
    at 99  QuartzCore                          0x18ffde2b3        <redacted> + 883 
    at 100 QuartzCore                          0x18ffdde4b        <redacted> + 351 
    at 101 UIKitCore                           0x190ce7fe7        <redacted> + 83 
    at 102 UIKitCore                           0x190ce7c37        <redacted> + 171 
    at 103 UIKitCore                           0x190ce8bab        <redacted> + 91 
    at 104 CoreFoundation                      0x18e4c8087        <redacted> + 27 
    at 105 CoreFoundation                      0x18e4c801b        <redacted> + 175 
    at 106 CoreFoundation                      0x18e4c5b07        <redacted> + 243 
    at 107 CoreFoundation                      0x18e4c4d03        <redacted> + 839 
    at 108 CoreFoundation                      0x18e4c45b7        CFRunLoopRunSpecific + 571 
    at 109 GraphicsServices                    0x1d9f5a1c3        GSEventRunModal + 163 
    at 110 UIKitCore                           0x19101a5ef        <redacted> + 815 
    at 111 UIKitCore                           0x1910c910b        UIApplicationMain + 339 
    at 112 SwiftUI                             0x192c23803        <redacted> + 167 
    at 113 SwiftUI                             0x192c00e67        <redacted> + 99 
    at 114 SwiftUI                             0x192c03d67        $s7SwiftUI3AppPAAE4mainyyFZ + 179 
    at 115 KMPExampleRichText.debug.dylib      0x106e9457b        $s18KMPExampleRichText6iOSAppV5$mainyyFZ + 39 
    at 116 KMPExampleRichText.debug.dylib      0x106e9462b        __debug_main_executable_dylib_entry_point + 11 
    at 117 dyld                                0x1b3c97d33        <redacted> + 2723 
    Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.runtime.BroadcastFrameClock@47803e8, StandaloneCoroutine{Cancelling}@47416d0, FlushCoroutineDispatcher@60741b8]
        at 0   KMPExampleRichText.debug.dylib      0x107b5554b        kfun:kotlin.Throwable#<init>(kotlin.String?){} + 119 
        at 1   KMPExampleRichText.debug.dylib      0x107b4ea13        kfun:kotlin.Exception#<init>(kotlin.String?){} + 115 
        at 2   KMPExampleRichText.debug.dylib      0x107b4ec33        kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 115 
        at 3   KMPExampleRichText.debug.dylib      0x106f4f177        kfun:kotlinx.coroutines.internal.DiagnosticCoroutineContextException#<init>(kotlin.coroutines.CoroutineContext){} + 171 
        at 4   KMPExampleRichText.debug.dylib      0x106f228c7        kfun:kotlinx.coroutines.internal#handleUncaughtCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 655 
        at 5   KMPExampleRichText.debug.dylib      0x106ec428b        kfun:kotlinx.coroutines#handleCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 531 
        at 6   KMPExampleRichText.debug.dylib      0x106eb7ff7        kfun:kotlinx.coroutines.StandaloneCoroutine.handleJobException#internal + 171 
        at 7   KMPExampleRichText.debug.dylib      0x106f564bb        kfun:kotlinx.coroutines.JobSupport#handleJobException(kotlin.Throwable){}kotlin.Boolean-trampoline + 63 
        at 8   KMPExampleRichText.debug.dylib      0x106ecdf9b        kfun:kotlinx.coroutines.JobSupport.finalizeFinishingState#internal + 1215 
        at 9   KMPExampleRichText.debug.dylib      0x106ed68e7        kfun:kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath#internal + 2171 
        at 10  KMPExampleRichText.debug.dylib      0x106ed602b        kfun:kotlinx.coroutines.JobSupport.tryMakeCompleting#internal + 755 
        at 11  KMPExampleRichText.debug.dylib      0x106ed5b4b        kfun:kotlinx.coroutines.JobSupport#makeCompletingOnce(kotlin.Any?){}kotlin.Any? + 379 
        at 12  KMPExampleRichText.debug.dylib      0x106eb5dcb        kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 215 
        at 13  KMPExampleRichText.debug.dylib      0x107c801f3        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 14  KMPExampleRichText.debug.dylib      0x107b5a5df        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1215 
        at 15  KMPExampleRichText.debug.dylib      0x107c801f3        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 16  KMPExampleRichText.debug.dylib      0x106f480db        kfun:kotlinx.coroutines.UndispatchedCoroutine#afterResume(kotlin.Any?){} + 247 
        at 17  KMPExampleRichText.debug.dylib      0x106f52e4b        kfun:kotlinx.coroutines.AbstractCoroutine#afterResume(kotlin.Any?){}-trampoline + 63 
        at 18  KMPExampleRichText.debug.dylib      0x106eb5e27        kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 307 
        at 19  KMPExampleRichText.debug.dylib      0x107c801f3        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 20  KMPExampleRichText.debug.dylib      0x107b5a5df        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1215 
        at 21  KMPExampleRichText.debug.dylib      0x107c801f3        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 22  KMPExampleRichText.debug.dylib      0x106f2d81f        kfun:kotlinx.coroutines.internal.ScopeCoroutine#afterResume(kotlin.Any?){} + 247 
        at 23  KMPExampleRichText.debug.dylib      0x106f52e4b        kfun:kotlinx.coroutines.AbstractCoroutine#afterResume(kotlin.Any?){}-trampoline + 63 
        at 24  KMPExampleRichText.debug.dylib      0x106eb5e27        kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 307 
        at 25  KMPExampleRichText.debug.dylib      0x107c801f3        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 26  KMPExampleRichText.debug.dylib      0x107b5a5df        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1215 
        at 27  KMPExampleRichText.debug.dylib      0x107c801f3        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 28  KMPExampleRichText.debug.dylib      0x106f26773        kfun:kotlinx.coroutines.DispatchedTask#run(){} + 1759 
        at 29  KMPExampleRichText.debug.dylib      0x106f55733        kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 91 
        at 30  KMPExampleRichText.debug.dylib      0x10801cbfb        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.dispatch$lambda$1$lambda$0#internal + 475 
        at 31  KMPExampleRichText.debug.dylib      0x10801e3ab        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.$dispatch$lambda$1$lambda$0$FUNCTION_REFERENCE$4.invoke#internal + 75 
        at 32  KMPExampleRichText.debug.dylib      0x10801e4a7        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.$dispatch$lambda$1$lambda$0$FUNCTION_REFERENCE$4.$<bridge-DNN>invoke(){}#internal + 71 
        at 33  KMPExampleRichText.debug.dylib      0x107c7d3ff        kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99 
        at 34  KMPExampleRichText.debug.dylib      0x10801c47b        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.performRun#internal + 319 
        at 35  KMPExampleRichText.debug.dylib      0x10801cda3        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.dispatch$lambda$1#internal + 255 
        at 36  KMPExampleRichText.debug.dylib      0x10801dde7        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.$dispatch$lambda$1$FUNCTION_REFERENCE$0.invoke#internal + 139 
        at 37  KMPExampleRichText.debug.dylib      0x107c80817        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
        at 38  KMPExampleRichText.debug.dylib      0x107b5d58f        kfun:kotlin.coroutines.intrinsics.object-4.invokeSuspend#internal + 739 
        at 39  KMPExampleRichText.debug.dylib      0x107c80107        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any?-trampoline + 71 
        at 40  KMPExampleRichText.debug.dylib      0x107b5a3a7        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 647 
        at 41  KMPExampleRichText.debug.dylib      0x107c801f3        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 42  KMPExampleRichText.debug.dylib      0x106f2683b        kfun:kotlinx.coroutines.DispatchedTask#run(){} + 1959 
        at 43  KMPExampleRichText.debug.dylib      0x106f55733        kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 91 
        at 44  KMPExampleRichText.debug.dylib      0x106f51877        kfun:kotlinx.coroutines.DarwinMainDispatcher.dispatch$lambda$0#internal + 67 
        at 45  KMPExampleRichText.debug.dylib      0x106f51aff        kfun:kotlinx.coroutines.DarwinMainDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1.invoke#internal + 71 
        at 46  KMPExampleRichText.debug.dylib      0x106f51bcf        kfun:kotlinx.coroutines.DarwinMainDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1.$<bridge-DNN>invoke(){}#internal + 71 
        at 47  KMPExampleRichText.debug.dylib      0x107c7d3ff        kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99 
        at 48  KMPExampleRichText.debug.dylib      0x106f52b77        _6f72672e6a6574627261696e732e6b6f746c696e783a6b6f746c696e782d636f726f7574696e65732d636f72652f6f70742f6275696c644167656e742f776f726b2f343465633665383530643563363366302f6b6f746c696e782d636f726f7574696e65732d636f72652f6e617469766544617277696e2f7372632f44697370617463686572732e6b74_knbridge13 + 203 
        at 49  libdispatch.dylib                   0x102fdca2f        _dispatch_call_block_and_release + 31 
        at 50  libdispatch.dylib                   0x102fde71b        _dispatch_client_callout + 19 
        at 51  libdispatch.dylib                   0x102feede7        _dispatch_main_queue_drain + 1075 
        at 52  libdispatch.dylib                   0x102fee9a3        _dispatch_main_queue_callback_4CF + 43 
        at 53  CoreFoundation                      0x18e4c7f63        <redacted> + 15 
        at 54  CoreFoundation                      0x18e4c5187        <redacted> + 1995 
        at 55  CoreFoundation                      0x18e4c45b7        CFRunLoopRunSpecific + 571 
        ... and 9 more common stack frames skipped
MohamedRejeb commented 1 month ago

Thanks for opening this issue, I will check it.