mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Try recursive lambda without make_shared.
This commit is contained in:
parent
2f5cb33bf2
commit
900f7e1304
1 changed files with 22 additions and 30 deletions
|
@ -2995,8 +2995,7 @@ void ApiWrap::toggleFavedSticker(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto failHandler = std::make_shared<Fn<void(const RPCError&, QByteArray)>>();
|
auto performRequest = [=](const auto &repeatRequest) -> void {
|
||||||
auto performRequest = [=] {
|
|
||||||
const auto usedFileReference = document->fileReference();
|
const auto usedFileReference = document->fileReference();
|
||||||
request(MTPmessages_FaveSticker(
|
request(MTPmessages_FaveSticker(
|
||||||
document->mtpInput(),
|
document->mtpInput(),
|
||||||
|
@ -3006,21 +3005,18 @@ void ApiWrap::toggleFavedSticker(
|
||||||
_session->data().stickers().setFaved(document, faved);
|
_session->data().stickers().setFaved(document, faved);
|
||||||
}
|
}
|
||||||
}).fail([=](const RPCError &error) {
|
}).fail([=](const RPCError &error) {
|
||||||
(*failHandler)(error, usedFileReference);
|
if (error.code() == 400
|
||||||
|
&& error.type().startsWith(qstr("FILE_REFERENCE_"))) {
|
||||||
|
auto refreshed = [=](const UpdatedFileReferences &data) {
|
||||||
|
if (document->fileReference() != usedFileReference) {
|
||||||
|
repeatRequest(repeatRequest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
refreshFileReference(origin, std::move(refreshed));
|
||||||
|
}
|
||||||
}).send();
|
}).send();
|
||||||
};
|
};
|
||||||
*failHandler = [=](const RPCError &error, QByteArray usedFileReference) {
|
performRequest(performRequest);
|
||||||
if (error.code() == 400
|
|
||||||
&& error.type().startsWith(qstr("FILE_REFERENCE_"))) {
|
|
||||||
auto refreshed = [=](const UpdatedFileReferences &data) {
|
|
||||||
if (document->fileReference() != usedFileReference) {
|
|
||||||
performRequest();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
refreshFileReference(origin, std::move(refreshed));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
performRequest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ApiWrap::toggleSavedGif(
|
void ApiWrap::toggleSavedGif(
|
||||||
|
@ -3031,8 +3027,7 @@ void ApiWrap::toggleSavedGif(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto failHandler = std::make_shared<Fn<void(const RPCError&, QByteArray)>>();
|
auto performRequest = [=](const auto &repeatRequest) -> void {
|
||||||
auto performRequest = [=] {
|
|
||||||
const auto usedFileReference = document->fileReference();
|
const auto usedFileReference = document->fileReference();
|
||||||
request(MTPmessages_SaveGif(
|
request(MTPmessages_SaveGif(
|
||||||
document->mtpInput(),
|
document->mtpInput(),
|
||||||
|
@ -3044,21 +3039,18 @@ void ApiWrap::toggleSavedGif(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).fail([=](const RPCError &error) {
|
}).fail([=](const RPCError &error) {
|
||||||
(*failHandler)(error, usedFileReference);
|
if (error.code() == 400
|
||||||
|
&& error.type().startsWith(qstr("FILE_REFERENCE_"))) {
|
||||||
|
auto refreshed = [=](const UpdatedFileReferences &data) {
|
||||||
|
if (document->fileReference() != usedFileReference) {
|
||||||
|
repeatRequest(repeatRequest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
refreshFileReference(origin, std::move(refreshed));
|
||||||
|
}
|
||||||
}).send();
|
}).send();
|
||||||
};
|
};
|
||||||
*failHandler = [=](const RPCError & error, QByteArray usedFileReference) {
|
performRequest(performRequest);
|
||||||
if (error.code() == 400
|
|
||||||
&& error.type().startsWith(qstr("FILE_REFERENCE_"))) {
|
|
||||||
auto refreshed = [=](const UpdatedFileReferences &data) {
|
|
||||||
if (document->fileReference() != usedFileReference) {
|
|
||||||
performRequest();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
refreshFileReference(origin, std::move(refreshed));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
performRequest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ApiWrap::requestStickers(TimeId now) {
|
void ApiWrap::requestStickers(TimeId now) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue