GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Moving DynamicColor back to struct by mischreiber · Pull Request #2150 · microsoft/fluentui-apple

Conversation

@mischreiber

@mischreiber Mike Schreiber (mischreiber) commented May 7, 2025 •
edited by microsoft-github-policy-service Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Collaborator

Platforms Impacted

  • iOS
  • visionOS
  • macOS

Description of changes

We were running into a very rare crash when simultaneously accessing the same Fluent color on multiple threads. There appears to be some cacheing issue when creating a UIColor that wraps a dynamic SwiftUI Color when the resolver is a class instead of a struct.

In the meantime, a quick fix is to change it back to a struct (I don't even remember why it was a class in the first place).

This does do away with Objective-C support for DynamicColor, but that was pretty short lived anyway :)

Binary change

(how is our binary size impacted -- see https://github.com/microsoft/fluentui-apple/wiki/Size-Comparison)

Verification

Verified that we can create 100,000 Fluent colors simultaneously without crashing (before this change, it would crash 100% at that scale).

Pull request checklist

This PR has considered:

  • Light and Dark appearances
  • iOS supported versions (all major versions greater than or equal current target deployment version)
  • VoiceOver and Keyboard Accessibility
  • Internationalization and Right to Left layouts
  • Different resolutions (1x, 2x, 3x)
  • Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
  • iPad Pointer interaction
  • SwiftUI consumption (validation or new demo scenarios needed)
  • Objective-C exposure (provide it only if needed)
Microsoft Reviewers: Open in CodeFlow

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mischreiber
Moving DynamicColor back to struct
e3c9aff
@mischreiber
Mike Schreiber (mischreiber) requested a review from a team as a code owner May 7, 2025 22:15
@mischreiber
Merge branch 'main' into DynamicColorStruct
df3ddee
joannaquu
Joanna Qu (joannaquu) approved these changes May 7, 2025
View reviewed changes
huwilkes
huwilkes approved these changes May 7, 2025
View reviewed changes
lukas-cap
Lukas Capkovic (lukas-cap) approved these changes May 7, 2025
View reviewed changes
nodes11
Des Marks (nodes11) approved these changes May 7, 2025
View reviewed changes
@mischreiber
Mike Schreiber (mischreiber) merged commit bc4b017 into microsoft:main May 7, 2025
@mischreiber
Mike Schreiber (mischreiber) deleted the DynamicColorStruct branch May 7, 2025 23:04
@mischreiber Mike Schreiber (mischreiber) mentioned this pull request Jun 13, 2025
Bump version to 0.34 #2180
Merged
3 of 12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@lukas-cap Lukas Capkovic (lukas-cap) lukas-cap approved these changes
@nodes11 Des Marks (nodes11) nodes11 approved these changes
@joannaquu Joanna Qu (joannaquu) joannaquu approved these changes
@huwilkes huwilkes huwilkes approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@mischreiber @lukas-cap @nodes11 @joannaquu @huwilkes
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.