Skip to content

Commit bf06d4d

Browse files
committed
Fix crash in stickers box.
1 parent bfafdd5 commit bf06d4d

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

Telegram/SourceFiles/boxes/stickers_box.cpp

+17-9
Original file line numberDiff line numberDiff line change
@@ -1921,20 +1921,28 @@ void StickersBox::Inner::readVisibleSets() {
19211921
int rowFrom = floorclamp(itemsVisibleTop, _rowHeight, 0, _rows.size());
19221922
int rowTo = ceilclamp(itemsVisibleBottom, _rowHeight, 0, _rows.size());
19231923
for (int i = rowFrom; i < rowTo; ++i) {
1924-
if (!_rows[i]->unread) {
1924+
const auto row = _rows[i].get();
1925+
if (!row->unread) {
19251926
continue;
19261927
}
1927-
if (i * _rowHeight < itemsVisibleTop || (i + 1) * _rowHeight > itemsVisibleBottom) {
1928+
if ((i * _rowHeight < itemsVisibleTop)
1929+
|| ((i + 1) * _rowHeight > itemsVisibleBottom)) {
19281930
continue;
19291931
}
1930-
const auto thumbnailLoading = _rows[i]->set->hasThumbnail()
1931-
? _rows[i]->set->thumbnailLoading()
1932-
: _rows[i]->sticker
1933-
? ((_rows[i]->stickerMedia && _rows[i]->stickerMedia->loaded())
1934-
|| _rows[i]->sticker->thumbnailLoading())
1932+
const auto thumbnailLoading = row->set->hasThumbnail()
1933+
? row->set->thumbnailLoading()
1934+
: row->sticker
1935+
? row->sticker->thumbnailLoading()
19351936
: false;
1936-
if (!thumbnailLoading || _rows[i]->stickerMedia->loaded()) {
1937-
_session->api().readFeaturedSetDelayed(_rows[i]->set->id);
1937+
const auto thumbnailLoaded = row->set->hasThumbnail()
1938+
? (row->thumbnailMedia
1939+
&& (row->thumbnailMedia->image()
1940+
|| !row->thumbnailMedia->content().isEmpty()))
1941+
: row->sticker
1942+
? (row->stickerMedia && row->stickerMedia->loaded())
1943+
: true;
1944+
if (!thumbnailLoading || thumbnailLoaded) {
1945+
_session->api().readFeaturedSetDelayed(row->set->id);
19381946
}
19391947
}
19401948
}

0 commit comments

Comments
 (0)