Fix MatchedGeometryEffectModifierExample - #983
Conversation
🤖 Augment PR SummarySummary: This PR completes integration points required for matched-geometry rendering and animation.
🤖 Was this summary useful? React with 👍 or 👎 |
| case let .roundedRect(fixedRoundedRect) where transform.isRectilinear: | ||
| return Path(storage: .roundedRect(fixedRoundedRect.applying(transform))) | ||
| default: | ||
| _openSwiftUIUnimplementedFailure() |
There was a problem hiding this comment.
Path.applying(_:) accepts arbitrary affine transforms, but every non-rectilinear transform—including a rotation or shear, and any buffer-backed path—reaches _openSwiftUIUnimplementedFailure(). This leaves legitimate rotated/sheared matched-geometry paths unable to render and terminates the process instead.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
|
👀 Human review needed JustificationThis change modifies core rendering and view-graph internals and is not eligible for automatic low-risk approval:
Because the change combines graph-internals behavior activation, unsafe manual memory management, partially-implemented core rendering paths, and acknowledged known issues, it requires human review rather than automatic approval. Note: this PR was already merged (commit ccd7e6a) shortly after being marked ready for review, before this risk review completed. This classification is provided for post-merge review. Reviewed commit ccd7e6a → Pair Review BriefingReviewed commit ccd7e6a |
| switch kind { | ||
| #if canImport(CoreGraphics) || !OPENSWIFTUI_CF_CGTYPES | ||
| case .cgPath: | ||
| data.cgPath.release() |
There was a problem hiding this comment.
The .cgPath case now releases an unmanaged value that PathBox.init(_:) stores with passUnretained, so Path does not own the reference being released here. Any Path initialized from a caller-owned CGPath can over-release that object when the box is deallocated, which risks crashes or memory corruption.
Severity: high
🤖 Was this useful? React with 👍 or 👎
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #983 +/- ##
==========================================
- Coverage 26.88% 26.86% -0.02%
==========================================
Files 732 732
Lines 53979 54056 +77
==========================================
+ Hits 14510 14524 +14
- Misses 39469 39532 +63 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🛠️ Tuist Run Report 🛠️Tests 🧪
Failed Tests ❌
Builds 🔨
|
Summary
Motivation
Matched geometry rendering depends on graph scope setup and supporting path and shape-layer operations during display-list updates. This follow-up completes those integration points so the feature can render and animate through the sample pipeline.
Validation
The focused matched-geometry snapshot cases are enabled, and the rebased change set passes diff cleanliness checks.