Skip to content

Commit 767cd9d

Browse files
Don't capture by reference
1 parent fe64f03 commit 767cd9d

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

Firestore/core/src/firebase/firestore/core/firestore_client.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ class FirestoreClient : public std::enable_shared_from_this<FirestoreClient> {
207207
std::chrono::milliseconds initial_gc_delay_ = std::chrono::minutes(1);
208208
std::chrono::milliseconds regular_gc_delay_ = std::chrono::minutes(5);
209209
bool gc_has_run_ = false;
210+
bool credentials_initialized_ = false;
210211
local::LruDelegate* _Nullable lru_delegate_;
211212
util::DelayedOperation lru_callback_;
212213
};

Firestore/core/src/firebase/firestore/core/firestore_client.mm

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,13 @@
9494
new FirestoreClient(database_info, std::move(credentials_provider),
9595
std::move(user_executor), std::move(worker_queue)));
9696

97-
bool credentials_initialized = false;
98-
9997
std::weak_ptr<FirestoreClient> weak_client(shared_client);
100-
auto credential_change_listener = [&credentials_initialized, weak_client,
101-
settings](User user) mutable {
98+
auto credential_change_listener = [weak_client, settings](User user) mutable {
10299
auto shared_client = weak_client.lock();
103100
if (!shared_client) return;
104101

105-
if (!credentials_initialized) {
106-
credentials_initialized = true;
102+
if (!shared_client->credentials_initialized_) {
103+
shared_client->credentials_initialized_ = true;
107104

108105
// When we register the credentials listener for the first time,
109106
// it is invoked synchronously on the calling thread. This ensures that
@@ -126,7 +123,7 @@ new FirestoreClient(database_info, std::move(credentials_provider),
126123
credential_change_listener);
127124

128125
HARD_ASSERT(
129-
credentials_initialized,
126+
credentials_initialized_,
130127
"CredentialChangeListener not invoked during client initialization");
131128

132129
return shared_client;

0 commit comments

Comments
 (0)