diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp index a421e42998..6bce0085d0 100644 --- a/Telegram/SourceFiles/calls/calls_call.cpp +++ b/Telegram/SourceFiles/calls/calls_call.cpp @@ -136,18 +136,19 @@ void Call::startOutgoing() { return; } + auto &phoneCall = call.vphone_call; + auto &waitingCall = phoneCall.c_phoneCallWaiting(); + _id = waitingCall.vid.v; + _accessHash = waitingCall.vaccess_hash.v; setState(State::Waiting); if (_finishAfterRequestingCall) { hangup(); return; } - _discardByTimeoutTimer.callOnce(Global::CallReceiveTimeoutMs()); - auto &phoneCall = call.vphone_call.c_phoneCallWaiting(); - _id = phoneCall.vid.v; - _accessHash = phoneCall.vaccess_hash.v; - handleUpdate(call.vphone_call); + _discardByTimeoutTimer.callOnce(Global::CallReceiveTimeoutMs()); + handleUpdate(phoneCall); }).fail([this](const RPCError &error) { handleRequestError(error); }).send(); diff --git a/Telegram/SourceFiles/calls/calls_top_bar.cpp b/Telegram/SourceFiles/calls/calls_top_bar.cpp index 04fbb9e53a..4c6e12881e 100644 --- a/Telegram/SourceFiles/calls/calls_top_bar.cpp +++ b/Telegram/SourceFiles/calls/calls_top_bar.cpp @@ -87,7 +87,9 @@ TopBar::TopBar(QWidget *parent, const base::weak_unique_ptr &call) : TWidg void TopBar::initControls() { _mute->setClickedCallback([this] { - _call->setMute(!_call->isMute()); + if (auto call = _call.get()) { + call->setMute(!call->isMute()); + } }); setMuted(_call->isMute()); subscribe(_call->muteChanged(), [this](bool mute) { @@ -104,8 +106,8 @@ void TopBar::initControls() { } }); _hangup->setClickedCallback([this] { - if (_call) { - _call->hangup(); + if (auto call = _call.get()) { + call->hangup(); } }); _updateDurationTimer.setCallback([this] { updateDurationText(); });