From db298777e4ae74d878fc3881c757ae3e41a4a57c Mon Sep 17 00:00:00 2001 From: John Trujillo Date: Tue, 2 Jun 2026 12:36:50 -0500 Subject: [PATCH] fix(layouteditor): harden structure view drawing Avoid unsafe parent-chain access while rendering structure connectors --- .../codeonthego/layouteditor/views/StructureView.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/layouteditor/src/main/java/org/appdevforall/codeonthego/layouteditor/views/StructureView.kt b/layouteditor/src/main/java/org/appdevforall/codeonthego/layouteditor/views/StructureView.kt index 8c84ea7a65..982884fbb9 100644 --- a/layouteditor/src/main/java/org/appdevforall/codeonthego/layouteditor/views/StructureView.kt +++ b/layouteditor/src/main/java/org/appdevforall/codeonthego/layouteditor/views/StructureView.kt @@ -204,8 +204,8 @@ class StructureView( super.dispatchDraw(canvas) for (text in textViewMap.keys) { - val view = textViewMap[text] - val parent = text.parent.parent as ViewGroup + val view = textViewMap[text] ?: continue + val parent = (text.parent?.parent as? ViewGroup) ?: continue val centerX = parent.x val centerY = parent.y + parent.height.toFloat() / 2 @@ -265,7 +265,7 @@ class StructureView( val editText = view.editText ?: continue val current = viewTextMap[editText] ?: continue - val currentParent = current.parent.parent as ViewGroup + val currentParent = (current.parent?.parent as? ViewGroup) ?: continue drawLine(currentParent) } @@ -276,7 +276,7 @@ class StructureView( for (i in 0 until view.childCount) { val child = view.getChildAt(i) val current = viewTextMap[child] ?: continue - val currentParent = current.parent.parent as ViewGroup + val currentParent = (current.parent?.parent as? ViewGroup) ?: continue drawLine(currentParent) }