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

Fixing a possible null pointer exception and removing unnecessary nullability for settings #99

Merged
merged 2 commits into from
Apr 22, 2024

Conversation

MichaelGHSeg
Copy link
Contributor

No description provided.

@MichaelGHSeg MichaelGHSeg merged commit 057f872 into main Apr 22, 2024
5 checks passed
@MichaelGHSeg MichaelGHSeg deleted the MichaelGHSeg/DefaultStructNPEFix branch April 22, 2024 21:35
return;
}

Settings settings = await plugin.Analytics.SettingsAsync();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is already merged but since you already fetch
System system = await analytics.Store.CurrentState<System>();
isn't it redundant to call SettingsAsync which calls
System system = await Store.CurrentState<System>();
return system._settings;

So you can only fetch system, and then on line 173 pass through system._settings.

I don't think it will be much of a performance difference, but it will remove an extra call to Store.CurrentState, which I assume is not cached?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is cached in memory, but that's a good call out! the call to SettingsAsync is redundant. we can get ride of it in the next release. thanks for pointing this out!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did consider it, but I like having the consolidated interface for settings retrieval. Then we have one place to change it in the future, etc. Or even just for debug breakpoints.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean, if it's cached then it's not a performance impact.
The other thing is - how likely do you think a change for fetching settings will occur?

Either way, I only see two calls to SettingsAsync, one of which is the call here and the other being a call that converts sync-to-async which is only mentioned in the Tests project.

There is no Settings-related logic here honestly, since you just fetch them "automagically" through the System struct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants