fix: Fix runAsync
not properly retaining/releasing Frame
#2829
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.
What
Fixes an issue that actually should've occurred always, but apparently only occurred in
runAsync
, where theFrame
was not properly released.Before, we manually ref-counted using
_refCount
, and only if we hit_refCount < 1
we set the_frame
tonil
.Now, we moved
incrementRefCount
anddecrementRefCount
intoFrame
itself, which now usesCFRetain
andCFRelease
.This seems safer as we use ARC/MRC from NS, but also it now properly executes
runAsync
without halting.Changes
Tested on
Related issues