diff --git a/libs/image/tiles3/kis_tile_hash_table2.h b/libs/image/tiles3/kis_tile_hash_table2.h --- a/libs/image/tiles3/kis_tile_hash_table2.h +++ b/libs/image/tiles3/kis_tile_hash_table2.h @@ -302,7 +302,7 @@ if (!tile) { while (m_lazyLock.test_and_set(std::memory_order_acquire)); - if (!(tile = m_map.get(idx))) { + while (!(tile = m_map.get(idx))) { { QReadLocker locker(&m_defaultPixelDataLock); tile = new TileType(col, row, m_defaultTileData, m_mementoManager); @@ -322,8 +322,6 @@ newTile = true; m_numTiles.fetchAndAddRelaxed(1); } - - tile = m_map.get(idx); } m_lazyLock.clear(std::memory_order_release);