Skip to content

Commit

Permalink
Use a function instead of a lambda
Browse files Browse the repository at this point in the history
Weird stuff happens
  • Loading branch information
nico-abram authored Nov 29, 2018
1 parent a231159 commit 25742cb
Showing 1 changed file with 29 additions and 28 deletions.
57 changes: 29 additions & 28 deletions src/DownloadManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1866,37 +1866,38 @@ DownloadManager::StartSession(string user,
HTTPRequests.push_back(req);
}

void uploadSequentially(deque<HighScore*> toUpload)
{
auto it = toUpload.begin();
if (it != toUpload.end()) {
toUpload.pop_front();
auto& hs = (*it);
DLMAN->UploadScoreWithReplayDataFromDisk(
hs->GetScoreKey(), [hs, toUpload]() {
hs->AddUploadedServer(serverURL.Get());
uploadSequentially(toUpload);
});
}
return;
}
bool
DownloadManager::UploadScores()
{
if (!LoggedIn())
return false;
auto scores = SCOREMAN->GetAllPBPtrs();
deque<HighScore*> toUpload;
for (auto& vec : scores) {
for (auto& scorePtr : vec) {
auto ts = scorePtr->GetTopScore();
if ((ts == 1 || ts == 2) &&
!scorePtr->IsUploadedToServer(serverURL.Get())) {
toUpload.emplace_back(scorePtr);
}
}
}
function<void()> lambda;
lambda = [toUpload, lambda]() mutable {
auto it = toUpload.begin();
if (it != toUpload.end()) {
toUpload.pop_front();
auto& hs = (*it);
DLMAN->UploadScoreWithReplayDataFromDisk(
hs->GetScoreKey(), [hs, toUpload, lambda]() {
hs->AddUploadedServer(serverURL.Get());
lambda();
});
}
};
lambda();
return true;
if (!LoggedIn())
return false;
auto scores = SCOREMAN->GetAllPBPtrs();
deque<HighScore*> toUpload;
for (auto& vec : scores) {
for (auto& scorePtr : vec) {
auto ts = scorePtr->GetTopScore();
if ((ts == 1 || ts == 2) &&
!scorePtr->IsUploadedToServer(serverURL.Get())) {
toUpload.emplace_back(scorePtr);
}
}
}
uploadSequentially(toUpload);
return true;
}

int
Expand Down

0 comments on commit 25742cb

Please sign in to comment.