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

Retain a notification observer in StatsForegroundObservable #20999

Merged
merged 1 commit into from
Jul 9, 2023

Conversation

crazytonyli
Copy link
Contributor

Relates to #20994.

The removeWillEnterForegroundObserver function removes the wrong observer. This PR fixes it by adding the correct notification observer as an associated object, so that it can be removed later.

I want to avoid using Objective-C runtime API, but I don't think there are other viable alternatives here. We can't use the selector API because we can't add a @objc function to an extension.

Regression Notes

  1. Potential unintended areas of impact
    None.

  2. What I did to test those areas of impact (or what existing automated tests I relied on)
    None.

  3. What automated tests I added (or what prevented me from doing so)
    None.

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding unit tests for my changes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

UI Changes testing checklist: N/A

@crazytonyli crazytonyli added this to the 22.8 milestone Jul 3, 2023
@crazytonyli crazytonyli requested review from jkmassel and mokagio July 3, 2023 23:34
@crazytonyli crazytonyli self-assigned this Jul 3, 2023
@wpmobilebot
Copy link
Contributor

WordPress Alpha📲 You can test the changes from this Pull Request in WordPress Alpha by scanning the QR code below to install the corresponding build.
App NameWordPress Alpha WordPress Alpha
ConfigurationRelease-Alpha
Build Numberpr20999-d204b03
Version22.7
Bundle IDorg.wordpress.alpha
Commitd204b03
App Center BuildWPiOS - One-Offs #6192
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

@wpmobilebot
Copy link
Contributor

Jetpack Alpha📲 You can test the changes from this Pull Request in Jetpack Alpha by scanning the QR code below to install the corresponding build.
App NameJetpack Alpha Jetpack Alpha
ConfigurationRelease-Alpha
Build Numberpr20999-d204b03
Version22.7
Bundle IDcom.jetpack.alpha
Commitd204b03
App Center Buildjetpack-installable-builds #5218
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

Copy link
Contributor

@mokagio mokagio left a comment

Choose a reason for hiding this comment

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

I want to avoid using Objective-C runtime API, but I don't think there are other viable alternatives here. We can't use the selector API because we can't add a @objc function to an extension.

I think the whole design here could do with a overhaul. It doesn't seem appropriate to use a protocol in this way. Even the where Self: UIViewController extension is odd because none of the logic it adds has anything to do with UIViewController.

I have an idea for what should be a quick update. Would you be okay with me having a go instead of merging this?

I'm going to approve in the meantime, so if I haven't followed up by the time 22.8 should code freeze, we can get this fix it.

@crazytonyli
Copy link
Contributor Author

I have an idea for what should be a quick update. Would you be okay with me having a go instead of merging this?

@mokagio Absolutely. I have added a "do no merge" label to this PR for now, while waiting for your changes.

@mokagio
Copy link
Contributor

mokagio commented Jul 9, 2023

I'm going to approve in the meantime, so if I haven't followed up by the time 22.8 should code freeze, we can get this fix [in].

I didn't get to this. I'll follow up eventually because I have opinions 😅 but that shouldn't delay this fix.

@mokagio mokagio merged commit 5ecebb3 into trunk Jul 9, 2023
@mokagio mokagio deleted the fix-memory-leak-in-notification-observers-5 branch July 9, 2023 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants