Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 36c39b8

Browse files
committed
Minor clean-up
1 parent 40c36c9 commit 36c39b8

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

shell/platform/darwin/macos/framework/Source/FlutterDisplayLink.mm

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ @interface FlutterDisplayLink () {
1313
_FlutterDisplayLinkView* _view;
1414
std::optional<CGDirectDisplayID> _display_id;
1515
void (^_block)(CFTimeInterval timestamp, CFTimeInterval targetTimestamp);
16-
1716
BOOL _paused;
1817
}
1918

@@ -60,10 +59,11 @@ bool ShouldBeRunning() {
6059
std::mutex mutex_;
6160
};
6261

63-
void RunOrStopDisplayLink(CVDisplayLinkRef display_link, bool should_run) {
64-
if (should_run) {
62+
void RunOrStopDisplayLink(CVDisplayLinkRef display_link, bool should_be_running) {
63+
bool is_running = CVDisplayLinkIsRunning(display_link);
64+
if (should_be_running && !is_running) {
6565
CVDisplayLinkStart(display_link);
66-
} else {
66+
} else if (!should_be_running && is_running) {
6767
CVDisplayLinkStop(display_link);
6868
}
6969
}
@@ -84,10 +84,10 @@ void RunOrStopDisplayLink(CVDisplayLinkRef display_link, bool should_run) {
8484
CVDisplayLinkRelease(display_link);
8585
} else {
8686
// Update the display link state outside of the mutex.
87-
bool running = entry->ShouldBeRunning();
87+
bool should_be_running = entry->ShouldBeRunning();
8888
CVDisplayLinkRef display_link = CVDisplayLinkRetain(entry->display_link_locked);
8989
lock.unlock();
90-
RunOrStopDisplayLink(display_link, running);
90+
RunOrStopDisplayLink(display_link, should_be_running);
9191
CVDisplayLinkRelease(display_link);
9292
}
9393
return;
@@ -101,10 +101,10 @@ void RunOrStopDisplayLink(CVDisplayLinkRef display_link, bool should_run) {
101101
for (ScreenEntry& entry : entries_) {
102102
if (entry.display_id == display_id) {
103103
entry.clients.push_back(displayLink);
104-
bool running = entry.ShouldBeRunning();
104+
bool should_be_running = entry.ShouldBeRunning();
105105
CVDisplayLinkRef display_link = CVDisplayLinkRetain(entry.display_link_locked);
106106
lock.unlock();
107-
RunOrStopDisplayLink(display_link, running);
107+
RunOrStopDisplayLink(display_link, should_be_running);
108108
CVDisplayLinkRelease(display_link);
109109
return;
110110
}
@@ -124,8 +124,8 @@ void RunOrStopDisplayLink(CVDisplayLinkRef display_link, bool should_run) {
124124
});
125125

126126
// This is a new display link so it is safe to start it with mutex held.
127-
bool running = entry.ShouldBeRunning();
128-
RunOrStopDisplayLink(entry.display_link_locked, running);
127+
bool should_be_running = entry.ShouldBeRunning();
128+
RunOrStopDisplayLink(entry.display_link_locked, should_be_running);
129129
entries_.push_back(entry);
130130
}
131131

0 commit comments

Comments
 (0)