Fix GCC 15 -Wdangling-pointer

This commit is contained in:
Ilya Fedin
2026-03-03 06:03:32 +00:00
committed by John Preston
parent de4d55e06a
commit ca0c9ab659
3 changed files with 40 additions and 24 deletions
@@ -2285,11 +2285,13 @@ void Controller::saveUsernamesOrder() {
_api.request(MTPchannels_DeactivateAllUsernames( _api.request(MTPchannels_DeactivateAllUsernames(
channel->inputChannel() channel->inputChannel()
)).done([=] { )).done([=] {
channel->setUsernames(channel->editableUsername().isEmpty() if (channel->editableUsername().isEmpty()) {
? Data::Usernames() channel->setUsernames({});
: Data::Usernames{ } else {
channel->setUsernames({
{ channel->editableUsername(), true, true } { channel->editableUsername(), true, true }
}); });
}
continueSave(); continueSave();
}).send(); }).send();
} else { } else {
+16 -12
View File
@@ -748,12 +748,14 @@ not_null<UserData*> Session::processUser(const MTPUser &data) {
status = data.vstatus(); status = data.vstatus();
if (!minimal) { if (!minimal) {
const auto newUsername = uname; const auto newUsername = uname;
const auto newUsernames = data.vusernames() if (data.vusernames()) {
? Api::Usernames::FromTL(*data.vusernames()) result->setUsernames(
: !newUsername.isEmpty() Api::Usernames::FromTL(*data.vusernames()));
? Data::Usernames{{ newUsername, true, true }} } else if (!newUsername.isEmpty()) {
: Data::Usernames(); result->setUsernames({{ newUsername, true, true }});
result->setUsernames(newUsernames); } else {
result->setUsernames({});
}
} }
} }
if (const auto &status = data.vemoji_status()) { if (const auto &status = data.vemoji_status()) {
@@ -957,15 +959,17 @@ not_null<PeerData*> Session::processChat(const MTPChat &data) {
{ {
const auto newUsername = qs(data.vusername().value_or_empty()); const auto newUsername = qs(data.vusername().value_or_empty());
const auto newUsernames = data.vusernames()
? Api::Usernames::FromTL(*data.vusernames())
: !newUsername.isEmpty()
? Data::Usernames{ Data::Username{ newUsername, true, true } }
: Data::Usernames();
channel->setName( channel->setName(
qs(data.vtitle()), qs(data.vtitle()),
TextUtilities::SingleLine(newUsername)); TextUtilities::SingleLine(newUsername));
channel->setUsernames(newUsernames); if (data.vusernames()) {
channel->setUsernames(
Api::Usernames::FromTL(*data.vusernames()));
} else if (!newUsername.isEmpty()) {
channel->setUsernames({ { newUsername, true, true } });
} else {
channel->setUsernames({});
}
} }
const auto hasUsername = !channel->username().isEmpty(); const auto hasUsername = !channel->username().isEmpty();
+19 -9
View File
@@ -460,9 +460,13 @@ QByteArray Parser::block(const MTPDpageBlockList &data) {
QByteArray Parser::block(const MTPDpageBlockBlockquote &data) { QByteArray Parser::block(const MTPDpageBlockBlockquote &data) {
const auto caption = rich(data.vcaption()); const auto caption = rich(data.vcaption());
const auto cite = caption.isEmpty() const auto cite = [&] {
? QByteArray() if (caption.isEmpty()) {
: tag("cite", { { "dir", "auto" } }, caption); return QByteArray();
} else {
return tag("cite", { { "dir", "auto" } }, caption);
}
}();
return tag("blockquote", { return tag("blockquote", {
{ "dir", "auto" } { "dir", "auto" }
}, rich(data.vtext()) + cite); }, rich(data.vtext()) + cite);
@@ -470,9 +474,13 @@ QByteArray Parser::block(const MTPDpageBlockBlockquote &data) {
QByteArray Parser::block(const MTPDpageBlockPullquote &data) { QByteArray Parser::block(const MTPDpageBlockPullquote &data) {
const auto caption = rich(data.vcaption()); const auto caption = rich(data.vcaption());
const auto cite = caption.isEmpty() const auto cite = [&] {
? QByteArray() if (caption.isEmpty()) {
: tag("cite", { { "dir", "auto" } }, caption); return QByteArray();
} else {
return tag("cite", { { "dir", "auto" } }, caption);
}
}();
return tag("div", { return tag("div", {
{ "class", "pullquote" }, { "class", "pullquote" },
{ "dir", "auto" }, { "dir", "auto" },
@@ -1084,12 +1092,14 @@ QByteArray Parser::rich(const MTPRichText &text) {
}, [&](const MTPDtextAnchor &data) { }, [&](const MTPDtextAnchor &data) {
const auto inner = rich(data.vtext()); const auto inner = rich(data.vtext());
const auto name = utf(data.vname()); const auto name = utf(data.vname());
return inner.isEmpty() if (inner.isEmpty()) {
? tag("a", { { "name", name } }) return tag("a", { { "name", name } });
: tag( } else {
return tag(
"span", "span",
{ { "class", "reference" } }, { { "class", "reference" } },
tag("a", { { "name", name } }) + inner); tag("a", { { "name", name } }) + inner);
}
}); });
} }