telegramdesktop/tdesktop/public-canary • a2a664b • 1 files, +1/-1
Fixed crash constructing a raced shared Lottie state.
A shared provider is destroyed by the first render() that fails, on the
renderer thread, while SharedState is constructed on a crl::async one -
so _shared could go away between valid() and construct(). Tolerate that
instead of asserting, and treat a missing cover as a failed animation:
the metadata copied at load time no longer describes such a state, and
frameForPaint() would have asserted on its null frame later on.
telegramdesktop/tdesktop/public-canary • 9a50ddd • 1 files, +8/-1
Guard enlarging a group call video with no monitors.
videoEndpointLargeValue() fires on data, not on user input, so it can
reach enlargeVideo() during the interval when the last monitor is gone
and QWidget::screen() is nullptr.
telegramdesktop/tdesktop/public-canary • 481d5bd • 1 files, +5/-1
Show the moved service message in its new topic.
The half beside applyItemRemoved() was missing: the edited item left the
old topic but was never offered to the new one, so its preview and order
in the topic list stayed stale until a reload.
telegramdesktop/tdesktop/public-canary • 320d0c6 • 1 files, +1/-1
Destroy a removed menu item before its action.
An item reads action() while it is being torn down, so removeAction()
deleting the action first left it pointing at freed memory for the whole
widget destructor. clearActions() and clearLastSeparator() already do it
in this order.
telegramdesktop/tdesktop/public-canary • 6c1a17a • 1 files, +1/-1
Don't clear metadata through a null display updater.
init() registers the ButtonPressed handler before it fills in the display
updater, so an E_OUTOFMEMORY in between leaves the token set and the
updater null - and the destructor takes exactly that branch, calling
ClearAll() on a null projected interface at process exit.
telegramdesktop/tdesktop/public-canary • 31712e9 • 2 files, +12/-4
Destroy the info controller with its content widgets.
createMemento() freed the Controller while _content lived on, and the
content widgets hold it by a raw pointer: MainWidget::showHistory takes
the memento, runs a whole HistoryWidget::showHistory - which reaches
itemVisibilitiesUpdated() and the still-subscribed media list - and only
then destroys the section. The nulling was never a lifetime requirement,
just the "memento already taken" flag showInternal() reads, so make that
a flag and let the controller die with the widget after _content.
telegramdesktop/tdesktop/public-canary • 8265059 • 1 files, +1/-1
Update lib_ui.
#tdesktop
telegramdesktop/tdesktop/public-canary • a2a664b • 1 files, +1/-1 Fixed crash constructing a raced s
Telegram github commits and releases
@tgappsupdatesBroadcast from the most important Telegram clients' repositories
4,538 subscribers
Open in Telegram