Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[iOS] Calling InvalidateMeasure() on a descendant during measure can go infinite #2842

Open
1 of 12 tasks
davidjohnoliver opened this issue Mar 19, 2020 · 4 comments
Open
1 of 12 tasks
Labels
difficulty/medium 🤔 Categorizes an issue for which the difficulty level is reachable with a good understanding of WinUI kind/bug Something isn't working platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform project/layout 🧱 Categorizes an issue or PR as relevant to layouting and containers (Measure/Arrange, Collections,..)

Comments

@davidjohnoliver
Copy link
Contributor

How to reproduce it (as minimally and precisely as possible)

https://github.com/davidjohnoliver/InfMeasure

Current behavior

On iOS, sample fails with an inordinate number of measure/layout passes. (In more complex examples eg WCT DataGrid this can be effectively infinite, freezing the app.)

Expected behavior

Calling descendant.InvalidateMeasure() from with MeasureOverride() doesn't trigger an additional measure/arrange pass.

Environment

Nuget Package:

Package Version(s):

Affected platform(s):

  • iOS
  • Android
  • WebAssembly
  • WebAssembly renderers for Xamarin.Forms
  • macOS
  • Windows
  • Build tasks
  • Solution Templates

Visual Studio:

  • 2017 (version: )
  • 2019 (version: )
  • for Mac (version: )

Relevant plugins:

  • Resharper (version: )

Anything else we need to know?

This doesn't occur on Android or WASM.

@davidjohnoliver davidjohnoliver added kind/bug Something isn't working triage/untriaged Indicates an issue requires triaging or verification labels Mar 19, 2020
@francoistanguay francoistanguay added this to the 3.1 milestone Aug 29, 2020
@francoistanguay francoistanguay removed the triage/untriaged Indicates an issue requires triaging or verification label Aug 29, 2020
@carldebilly carldebilly modified the milestones: 3.1, HighPriority Aug 31, 2020
@jeromelaban jeromelaban removed this from the HotFixes milestone Sep 2, 2020
@agneszitte agneszitte added the project/layout 🧱 Categorizes an issue or PR as relevant to layouting and containers (Measure/Arrange, Collections,..) label Sep 21, 2020
@jeromelaban jeromelaban added the difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. label Feb 15, 2021
@MartinZikmund MartinZikmund added difficulty/medium 🤔 Categorizes an issue for which the difficulty level is reachable with a good understanding of WinUI area/eu platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform and removed difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. labels Jun 1, 2021
@francoistanguay
Copy link
Contributor

@carldebilly Can this be closed with your refactoring?

@carldebilly
Copy link
Member

@francoistanguay @jeromelaban Probably. Need to check.

@carldebilly
Copy link
Member

Update

This problem is NOT fixed in Uno.UI v4.1.8

@carldebilly carldebilly removed their assignment Feb 23, 2023
@MartinZikmund MartinZikmund changed the title [iOS] Calling InvalidateMeasure() on a descendant during measure can go infinite [iOS] Calling InvalidateMeasure() on a descendant during measure can go infinite Jun 12, 2023
@Youssef1313
Copy link
Member

This may be fixed with #18261

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficulty/medium 🤔 Categorizes an issue for which the difficulty level is reachable with a good understanding of WinUI kind/bug Something isn't working platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform project/layout 🧱 Categorizes an issue or PR as relevant to layouting and containers (Measure/Arrange, Collections,..)
Projects
None yet
Development

No branches or pull requests

7 participants