Skip to content

Commit 6571ef0

Browse files
committed
fix(_DTXTimerTrampoline): Correct removal of display link associated object
1 parent 9a8d925 commit 6571ef0

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

DetoxSync/DetoxSync/Utils/_DTXTimerTrampoline.m

+10-2
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,15 @@ - (void)dealloc
8888
{
8989
NSLog(@"🤦‍♂️ trampoline dealloc: %@ (tracking: %d)", self, _tracking);
9090

91-
objc_setAssociatedObject(_timer, __DTXTimerTrampolineKey, nil, OBJC_ASSOCIATION_RETAIN);
91+
if(_timer)
92+
{
93+
objc_setAssociatedObject(_timer, __DTXTimerTrampolineKey, nil, OBJC_ASSOCIATION_ASSIGN);
94+
}
95+
96+
if(_displayLink)
97+
{
98+
objc_setAssociatedObject(_displayLink, __DTXTimerTrampolineKey, nil, OBJC_ASSOCIATION_ASSIGN);
99+
}
92100
}
93101

94102
- (void)setTimer:(NSTimer*)timer
@@ -105,7 +113,7 @@ - (void)setTimer:(NSTimer*)timer
105113
- (void)setDisplayLink:(CADisplayLink*)displayLink
106114
{
107115
_displayLink = displayLink;
108-
objc_setAssociatedObject(_displayLink, __DTXTimerTrampolineKey, self, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
116+
objc_setAssociatedObject(_displayLink, __DTXTimerTrampolineKey, self, OBJC_ASSOCIATION_RETAIN);
109117

110118
#if DEBUG
111119
_history = [NSString stringWithFormat:@"%@\n%@", _history, [displayLink debugDescription]];

0 commit comments

Comments
 (0)