SVN commit 1083289 by berger: do not allow to copy KisShared/KisSharedData, fix major leaks (especially of paint devices) M +1 -1 kis_base_node.cpp M +1 -1 kis_fixed_paint_device.cpp M +1 -1 kis_image.cc M +1 -1 kis_paint_device.cc M +3 -0 kis_shared.h M +2 -0 kis_shared_data.h M +1 -1 tiles3/kis_memento_item.h M +3 -3 tiles3/kis_tile.cc M +1 -1 tiles3/kis_tiled_data_manager.cc M +1 -1 tiles3/kis_tiled_random_accessor.cc --- trunk/koffice/krita/image/kis_base_node.cpp #1083288:1083289 @@ -47,7 +47,7 @@ KisBaseNode::KisBaseNode(const KisBaseNode & rhs) : QObject() - , KisShared(rhs) + , KisShared() , m_d(new Private()) { QMapIterator iter = rhs.m_d->properties.propertyIterator(); --- trunk/koffice/krita/image/kis_fixed_paint_device.cpp #1083288:1083289 @@ -32,7 +32,7 @@ } KisFixedPaintDevice::KisFixedPaintDevice(const KisFixedPaintDevice& rhs) - : KisShared(rhs) + : KisShared() { m_bounds = rhs.m_bounds; m_colorSpace = rhs.m_colorSpace; --- trunk/koffice/krita/image/kis_image.cc #1083288:1083289 @@ -119,7 +119,7 @@ : QObject() , KisNodeFacade(rhs) , KisNodeGraphListener(rhs) - , KisShared(rhs) + , KisShared() , m_d(new KisImagePrivate()) { --- trunk/koffice/krita/image/kis_paint_device.cc #1083288:1083289 @@ -152,7 +152,7 @@ KisPaintDevice::KisPaintDevice(const KisPaintDevice& rhs) : QObject() - , KisShared(rhs) + , KisShared() , m_d(new Private()) { if (this != &rhs) { --- trunk/koffice/krita/image/kis_shared.h #1083288:1083289 @@ -28,6 +28,9 @@ class KRITAIMAGE_EXPORT KisShared { friend class KisSharedData; +private: + KisShared(const KisShared& ); + KisShared& operator=(const KisShared& ); protected: KisShared(); ~KisShared(); --- trunk/koffice/krita/image/kis_shared_data.h #1083288:1083289 @@ -26,6 +26,8 @@ */ class KisSharedData { + KisSharedData(const KisSharedData& ); + KisSharedData& operator=(const KisSharedData& ); public: KisSharedData() : valid(true) { } bool valid; --- trunk/koffice/krita/image/tiles3/kis_memento_item.h #1083288:1083289 @@ -42,7 +42,7 @@ } KisMementoItem(const KisMementoItem& rhs) - : KisShared(rhs), + : KisShared(), m_tileData(rhs.m_tileData), m_commitedFlag(rhs.m_commitedFlag), m_type(rhs.m_type), --- trunk/koffice/krita/image/tiles3/kis_tile.cc #1083288:1083289 @@ -49,21 +49,21 @@ } KisTile::KisTile(const KisTile& rhs, qint32 col, qint32 row, KisMementoManager* mm) - : KisShared(rhs), + : KisShared(), m_lock(QMutex::Recursive) { init(col, row, rhs.tileData(), mm); } KisTile::KisTile(const KisTile& rhs, KisMementoManager* mm) - : KisShared(rhs), + : KisShared(), m_lock(QMutex::Recursive) { init(rhs.col(), rhs.row(), rhs.tileData(), mm); } KisTile::KisTile(const KisTile& rhs) - : KisShared(rhs), + : KisShared(), m_lock(QMutex::Recursive) { init(rhs.col(), rhs.row(), rhs.tileData(), rhs.m_mementoManager); --- trunk/koffice/krita/image/tiles3/kis_tiled_data_manager.cc #1083288:1083289 @@ -59,7 +59,7 @@ } KisTiledDataManager::KisTiledDataManager(const KisTiledDataManager &dm) - : KisShared(dm), + : KisShared(), m_lock(QReadWriteLock::NonRecursive) { /* See comment in destructor for details */ --- trunk/koffice/krita/image/tiles3/kis_tiled_random_accessor.cc #1083288:1083289 @@ -36,7 +36,7 @@ } KisTiledRandomAccessor::KisTiledRandomAccessor(const KisTiledRandomAccessor& lhs) - : KisShared(lhs) + : KisShared() { m_ktm = lhs.m_ktm; m_tilesCache = new KisTileInfo*[CACHESIZE];