From bfba6419c466ee48c8edf92fa57c08deb58b002d Mon Sep 17 00:00:00 2001 From: Pierre-Yves Ricau Date: Tue, 26 Mar 2024 10:27:48 -0700 Subject: [PATCH] Fix crash reading Canvas size from IO thread Fixes #2643 --- .../internal/activity/screen/RenderHeapDumpScreen.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/leakcanary/leakcanary-android-core/src/main/java/leakcanary/internal/activity/screen/RenderHeapDumpScreen.kt b/leakcanary/leakcanary-android-core/src/main/java/leakcanary/internal/activity/screen/RenderHeapDumpScreen.kt index b5bc7d03f3..09a62d5ee7 100644 --- a/leakcanary/leakcanary-android-core/src/main/java/leakcanary/internal/activity/screen/RenderHeapDumpScreen.kt +++ b/leakcanary/leakcanary-android-core/src/main/java/leakcanary/internal/activity/screen/RenderHeapDumpScreen.kt @@ -46,7 +46,10 @@ internal class RenderHeapDumpScreen( viewTreeObserver.addOnGlobalLayoutListener(object : OnGlobalLayoutListener { override fun onGlobalLayout() { - + // Extract values from the main thread, these could change by the time + // we get to the IO thread. + val measuredWidth = measuredWidth + val measuredHeight = measuredHeight executeOnIo { val bitmap = HeapDumpRenderer.render( context, heapDumpFile, measuredWidth, measuredHeight, 0