Kirill Grouchnikov
07/28/2022, 10:00 PMlayer
to null
? Once this method is done, the existing layer
is marked as disposed, and it’s pretty much unusable from that point on. I do have a rather elaborate scenario where I’m running into SkiaLayer.needRedraw
crashing - see the full stack trace in threadKirill Grouchnikov
07/28/2022, 10:00 PMat org.jetbrains.skiko.SkiaLayer.needRedraw(SkiaLayer.awt.kt:480)
at androidx.compose.ui.awt.ComposeLayer$scene$1.invoke(ComposeLayer.desktop.kt:152)
at androidx.compose.ui.awt.ComposeLayer$scene$1.invoke(ComposeLayer.desktop.kt:152)
at androidx.compose.ui.ComposeScene.invalidateIfNeeded(ComposeScene.skiko.kt:146)
at androidx.compose.ui.ComposeScene.requestLayout(ComposeScene.skiko.kt:155)
at androidx.compose.ui.ComposeScene.access$requestLayout(ComposeScene.skiko.kt:90)
at androidx.compose.ui.ComposeScene$attach$2.invoke(ComposeScene.skiko.kt:249)
at androidx.compose.ui.ComposeScene$attach$2.invoke(ComposeScene.skiko.kt:249)
at androidx.compose.ui.platform.SkiaBasedOwner.onRequestMeasure(SkiaBasedOwner.skiko.kt:293)
at androidx.compose.ui.node.Owner.onRequestMeasure$default(Owner.kt:149)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui(LayoutNode.kt:1120)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui$default(LayoutNode.kt:1117)
at androidx.compose.ui.node.LayoutNode.invalidateMeasurements$ui(LayoutNode.kt:1149)
at androidx.compose.ui.node.LayoutNode.detach$ui(LayoutNode.kt:415)
at androidx.compose.ui.node.LayoutNode.onChildRemoved(LayoutNode.kt:314)
at androidx.compose.ui.node.LayoutNode.removeAll$ui(LayoutNode.kt:307)
at androidx.compose.ui.platform.DefaultUiApplier.onClear(DefaultUiApplier.skiko.kt:42)
at androidx.compose.runtime.AbstractApplier.clear(Applier.kt:213)
at androidx.compose.runtime.CompositionImpl.dispose(Composition.kt:595)
at androidx.compose.ui.ComposeScene.close(ComposeScene.skiko.kt:228)
at androidx.compose.ui.awt.ComposeLayer.dispose(ComposeLayer.desktop.kt:381)
at androidx.compose.ui.awt.ComposePanel.removeNotify(ComposePanel.desktop.kt:186)
at java.desktop/java.awt.Container.removeNotify(Container.java:2831)
at java.desktop/javax.swing.JComponent.removeNotify(JComponent.java:4801)
at java.desktop/java.awt.Container.removeAll(Container.java:1322)
at java.desktop/javax.swing.Popup.hide(Popup.java:130)
at java.desktop/javax.swing.PopupFactory$HeavyWeightPopup.hide(PopupFactory.java:529)
at java.desktop/javax.swing.JPopupMenu.setVisible(JPopupMenu.java:789)
Kirill Grouchnikov
07/28/2022, 10:00 PMComposePanel
into a Swing’s JPopupMenu
Kirill Grouchnikov
07/28/2022, 10:01 PMJPopupMenu.setVisible(false)
Igor Demin
08/01/2022, 3:19 PMlayer
to null in ComposePanel (I will change this).
But according to the exception, that won’t fix the issue, because the exception happens inside layer.dispose
, not after it, when we will nullify layer
.
Could you provide a stack trace with the exception message, and maybe a part of the code?Kirill Grouchnikov
08/01/2022, 3:28 PM