[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krita/rempt/impex-refactoring] /: Prepare a bit for shared pointers with explicit constructors
From:       Frederik Gladhorn <gladhorn () kde ! org>
Date:       2016-11-07 23:45:46
Message-ID: E1c3tbm-0000Dl-H1 () code ! kde ! org
[Download RAW message or body]

Git commit 0bf6839a0de430262b828abdcf8b7e9bd1938815 by Frederik Gladhorn.
Committed on 07/11/2016 at 22:02.
Pushed by gladhorn into branch 'rempt/impex-refactoring'.

Prepare a bit for shared pointers with explicit constructors

While the implicit conversion may be convenient, it is also quite
dangerous. Let's try to move to explicit constructors.

M  +1    -1    libs/image/brushengine/kis_paintop_preset.cpp
M  +4    -5    libs/image/brushengine/kis_paintop_registry.cc
M  +2    -2    libs/image/commands/kis_change_filter_command.h
M  +1    -1    libs/image/commands/kis_image_layer_remove_command_impl.cpp
M  +2    -2    libs/image/commands/kis_node_property_list_command.cpp
M  +1    -1    libs/image/commands/kis_set_global_selection_command.cpp
M  +1    -1    libs/image/commands_new/kis_activate_selection_mask_command.cpp
M  +1    -1    libs/image/commands_new/kis_node_move_command2.cpp
M  +1    -1    libs/image/filter/kis_filter.cc
M  +1    -1    libs/image/filter/kis_filter_registry.cc
M  +3    -3    libs/image/generator/kis_generator_layer.cpp
M  +1    -1    libs/image/generator/kis_generator_registry.cpp
M  +1    -1    libs/image/kis_base_node.h
M  +2    -2    libs/image/kis_base_processor.cpp
M  +1    -1    libs/image/kis_default_bounds.h
M  +2    -2    libs/image/kis_image.h
M  +1    -1    libs/image/kis_image_interfaces.h
M  +1    -1    libs/image/kis_layer.h
M  +1    -2    libs/image/kis_layer_utils.cpp
M  +1    -1    libs/image/kis_node.cpp
M  +1    -1    libs/image/kis_node_facade.h
M  +1    -1    libs/image/kis_paint_device.h
M  +7    -7    libs/image/kis_painter.cc
M  +1    -1    libs/image/kis_pixel_selection.h
M  +2    -2    libs/image/kis_processing_information.h
M  +1    -1    libs/image/kis_regenerate_frame_stroke_strategy.cpp
M  +1    -1    libs/image/kis_selection.cc
M  +1    -1    libs/image/kis_selection.h
M  +5    -5    libs/image/kis_selection_based_layer.cpp
M  +16   -16   libs/image/lazybrush/kis_colorize_mask.cpp
M  +1    -1    libs/image/lazybrush/kis_multiway_cut.cpp
M  +1    -1    libs/image/processing/kis_crop_processing_visitor.cpp
M  +1    -2    libs/image/tests/kis_filter_processing_information_test.cpp
M  +1    -1    libs/image/tiles3/kis_memento_item.h
M  +1    -1    libs/image/tiles3/kis_memento_manager.cc
M  +10   -10   libs/image/tiles3/kis_tile_hash_table_p.h
M  +3    -3    libs/image/tiles3/kis_tiled_data_manager.cc
M  +3    -3    libs/image/tiles3/swap/kis_tile_compressor_factory.h
M  +3    -3    sdk/tests/testing_nodes.h
M  +4    -4    sdk/tests/testutil.h

http://commits.kde.org/krita/0bf6839a0de430262b828abdcf8b7e9bd1938815

diff --git a/libs/image/brushengine/kis_paintop_preset.cpp \
b/libs/image/brushengine/kis_paintop_preset.cpp index 5e42e14..30172a7 100644
--- a/libs/image/brushengine/kis_paintop_preset.cpp
+++ b/libs/image/brushengine/kis_paintop_preset.cpp
@@ -70,7 +70,7 @@ KisPaintOpPreset::~KisPaintOpPreset()
 
 KisPaintOpPresetSP KisPaintOpPreset::clone() const
 {
-    KisPaintOpPresetSP preset = new KisPaintOpPreset();
+    KisPaintOpPresetSP preset(new KisPaintOpPreset());
 
     if (settings()) {
         preset->setSettings(settings()); // the settings are cloned inside!
diff --git a/libs/image/brushengine/kis_paintop_registry.cc \
b/libs/image/brushengine/kis_paintop_registry.cc index 415a18f..f2ddde1 100644
--- a/libs/image/brushengine/kis_paintop_registry.cc
+++ b/libs/image/brushengine/kis_paintop_registry.cc
@@ -134,15 +134,14 @@ KisPaintOpSettingsSP KisPaintOpRegistry::settings(const KoID& \
id) const  
 KisPaintOpPresetSP KisPaintOpRegistry::defaultPreset(const KoID& id) const
 {
-    KisPaintOpPresetSP preset = new KisPaintOpPreset();
-    preset->setName(i18n("default"));
-
     KisPaintOpSettingsSP s = settings(id);
-
     if (s.isNull()) {
-        return 0;
+        return KisPaintOpPresetSP();
     }
 
+    KisPaintOpPresetSP preset(new KisPaintOpPreset());
+    preset->setName(i18n("default"));
+
     preset->setSettings(s);
     preset->setPaintOp(id);
     Q_ASSERT(!preset->paintOp().id().isEmpty());
diff --git a/libs/image/commands/kis_change_filter_command.h \
b/libs/image/commands/kis_change_filter_command.h index c095c53..f949ec1 100644
--- a/libs/image/commands/kis_change_filter_command.h
+++ b/libs/image/commands/kis_change_filter_command.h
@@ -72,10 +72,10 @@ private:
 
         if (m_useGeneratorRegistry) {
             KisGeneratorSP generator = \
                KisGeneratorRegistry::instance()->value(name);
-            config = generator->defaultConfiguration(0);
+            config = generator->defaultConfiguration(KisPaintDeviceSP());
         } else {
             KisFilterSP filter = KisFilterRegistry::instance()->value(name);
-            config = filter->defaultConfiguration(0);
+            config = filter->defaultConfiguration(KisPaintDeviceSP());
         }
 
         config->fromXML(data);
diff --git a/libs/image/commands/kis_image_layer_remove_command_impl.cpp \
b/libs/image/commands/kis_image_layer_remove_command_impl.cpp index 8f2acc6..bdbce86 \
                100644
--- a/libs/image/commands/kis_image_layer_remove_command_impl.cpp
+++ b/libs/image/commands/kis_image_layer_remove_command_impl.cpp
@@ -86,7 +86,7 @@ void KisImageLayerRemoveCommandImpl::Private::restoreClones()
 
 void KisImageLayerRemoveCommandImpl::Private::processClones(KisNodeSP node)
 {
-    KisLayerSP layer = dynamic_cast<KisLayer*>(node.data());
+    KisLayerSP layer(dynamic_cast<KisLayer*>(node.data()));
     if(!layer || !layer->hasClones()) return;
 
     if(reincarnatedNodes.isEmpty()) {
diff --git a/libs/image/commands/kis_node_property_list_command.cpp \
b/libs/image/commands/kis_node_property_list_command.cpp index 290a76d..fe87e2b \
                100644
--- a/libs/image/commands/kis_node_property_list_command.cpp
+++ b/libs/image/commands/kis_node_property_list_command.cpp
@@ -70,10 +70,10 @@ void KisNodePropertyListCommand::doUpdate(const \
KisBaseNode::PropertyList &oldPr  }
 
     if (oldPassThroughValue && !newPassThroughValue) {
-        KisLayer *layer = qobject_cast<KisLayer*>(m_node.data());
+        KisLayerSP layer(qobject_cast<KisLayer*>(m_node.data()));
         layer->image()->refreshGraphAsync(layer);
     } else if (m_node->parent() && !oldPassThroughValue && newPassThroughValue) {
-        KisLayer *layer = qobject_cast<KisLayer*>(m_node->parent().data());
+        KisLayerSP layer(qobject_cast<KisLayer*>(m_node->parent().data()));
         layer->image()->refreshGraphAsync(layer);
     } else {
         m_node->setDirty(); // TODO check if visibility was changed or not
diff --git a/libs/image/commands/kis_set_global_selection_command.cpp \
b/libs/image/commands/kis_set_global_selection_command.cpp index 9e2d264..d01b0cd \
                100644
--- a/libs/image/commands/kis_set_global_selection_command.cpp
+++ b/libs/image/commands/kis_set_global_selection_command.cpp
@@ -44,6 +44,6 @@ void KisSetGlobalSelectionCommand::undo()
 }
 
 KisSetEmptyGlobalSelectionCommand::KisSetEmptyGlobalSelectionCommand(KisImageWSP \
                image)
-    : KisSetGlobalSelectionCommand(image, new KisSelection(new \
KisSelectionEmptyBounds(image))) +    : KisSetGlobalSelectionCommand(image, \
KisSelectionSP(new KisSelection(KisSelectionEmptyBoundsSP(new \
KisSelectionEmptyBounds(image)))))  {
 }
diff --git a/libs/image/commands_new/kis_activate_selection_mask_command.cpp \
b/libs/image/commands_new/kis_activate_selection_mask_command.cpp index \
                12eeaa1..9670ad5 100644
--- a/libs/image/commands_new/kis_activate_selection_mask_command.cpp
+++ b/libs/image/commands_new/kis_activate_selection_mask_command.cpp
@@ -27,7 +27,7 @@ KisActivateSelectionMaskCommand::KisActivateSelectionMaskCommand(KisSelectionMas
  m_value(value)
 {
     if (m_previousActiveMask != m_selectionMask) {
-        KisLayerSP parent = dynamic_cast<KisLayer*>(selectionMask->parent().data());
+        KisLayerSP parent(dynamic_cast<KisLayer*>(selectionMask->parent().data()));
         if (parent) {
             m_previousActiveMask = parent->selectionMask();
         }
diff --git a/libs/image/commands_new/kis_node_move_command2.cpp \
b/libs/image/commands_new/kis_node_move_command2.cpp index e59f9c1..fa70fc4 100644
--- a/libs/image/commands_new/kis_node_move_command2.cpp
+++ b/libs/image/commands_new/kis_node_move_command2.cpp
@@ -37,7 +37,7 @@ void KisNodeMoveCommand2::undo() {
 
 void KisNodeMoveCommand2::tryNotifySelection(KisNodeSP node)
 {
-    KisSelectionMaskSP mask = dynamic_cast<KisSelectionMask*>(node.data());
+    KisSelectionMask *mask = dynamic_cast<KisSelectionMask*>(node.data());
     if (!mask) return;
 
     mask->notifySelectionChangedCompressed();
diff --git a/libs/image/filter/kis_filter.cc b/libs/image/filter/kis_filter.cc
index cf4f943..6154b95 100644
--- a/libs/image/filter/kis_filter.cc
+++ b/libs/image/filter/kis_filter.cc
@@ -97,7 +97,7 @@ void KisFilter::process(KisPaintDeviceSP device,
                         const KisFilterConfigurationSP config,
                         KoUpdater* progressUpdater) const
 {
-    process(device, device, 0, applyRect, config, progressUpdater);
+    process(device, device, KisSelectionSP(), applyRect, config, progressUpdater);
 }
 
 void KisFilter::process(const KisPaintDeviceSP src,
diff --git a/libs/image/filter/kis_filter_registry.cc \
b/libs/image/filter/kis_filter_registry.cc index 537a726..d9fb0ae 100644
--- a/libs/image/filter/kis_filter_registry.cc
+++ b/libs/image/filter/kis_filter_registry.cc
@@ -74,7 +74,7 @@ KisFilterConfigurationSP \
KisFilterRegistry::cloneConfiguration(const KisFilterCo  {
     Q_ASSERT(kfc);
     KisFilterSP filter = value(kfc->name());
-    KisFilterConfigurationSP newkfc = filter->defaultConfiguration(0);
+    KisFilterConfigurationSP \
newkfc(filter->defaultConfiguration(KisPaintDeviceSP()));  \
newkfc->fromXML(kfc->toXML());  return newkfc;
 }
diff --git a/libs/image/generator/kis_generator_layer.cpp \
b/libs/image/generator/kis_generator_layer.cpp index cef1bd1..7dc6bc5 100644
--- a/libs/image/generator/kis_generator_layer.cpp
+++ b/libs/image/generator/kis_generator_layer.cpp
@@ -82,12 +82,12 @@ void KisGeneratorLayer::slotDelayedStaticUpdate()
      * meanwhile. Just ignore the updates in the case.
      */
 
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer(dynamic_cast<KisLayer*>(parent().data()));
     if (!parentLayer) return;
 
     KisImageSP image = parentLayer->image();
     if (image) {
-        image->addSpontaneousJob(new KisRecalculateGeneratorLayerJob(this));
+        image->addSpontaneousJob(new \
KisRecalculateGeneratorLayerJob(KisGeneratorLayerSP(this)));  }
 }
 
@@ -110,7 +110,7 @@ void KisGeneratorLayer::update()
 
     KisProcessingInformation dstCfg(originalDevice,
                                     processRect.topLeft(),
-                                    0);
+                                    KisSelectionSP());
 
     f->generate(dstCfg, processRect.size(), filterConfig.data());
 
diff --git a/libs/image/generator/kis_generator_registry.cpp \
b/libs/image/generator/kis_generator_registry.cpp index 030ef6a..ee8a665 100644
--- a/libs/image/generator/kis_generator_registry.cpp
+++ b/libs/image/generator/kis_generator_registry.cpp
@@ -73,7 +73,7 @@ void KisGeneratorRegistry::add(const QString &id, KisGeneratorSP \
item)  KisFilterConfigurationSP KisGeneratorRegistry::cloneConfiguration(const \
KisFilterConfigurationSP kfc)  {
     KisGeneratorSP filter = value(kfc->name());
-    KisFilterConfigurationSP newkfc = filter->defaultConfiguration(0);
+    KisFilterConfigurationSP \
newkfc(filter->defaultConfiguration(KisPaintDeviceSP()));  \
newkfc->fromXML(kfc->toXML());  return newkfc;
 }
diff --git a/libs/image/kis_base_node.h b/libs/image/kis_base_node.h
index 6080fe0..9e430ae 100644
--- a/libs/image/kis_base_node.h
+++ b/libs/image/kis_base_node.h
@@ -507,7 +507,7 @@ protected:
      * the node stack
      */
     virtual KisBaseNodeSP parentCallback() const {
-        return 0;
+        return KisBaseNodeSP();
     }
 
     virtual void notifyParentVisibilityChanged(bool value) {
diff --git a/libs/image/kis_base_processor.cpp b/libs/image/kis_base_processor.cpp
index a416d36..d0c5789 100644
--- a/libs/image/kis_base_processor.cpp
+++ b/libs/image/kis_base_processor.cpp
@@ -32,10 +32,10 @@ public:
     KisBaseProcessorConfigurationFactory(KisBaseProcessor* _generator) : \
m_generator(_generator) {}  ~KisBaseProcessorConfigurationFactory() override {}
     KisSerializableConfigurationSP createDefault() override {
-        return m_generator->factoryConfiguration(0);
+        return m_generator->factoryConfiguration(KisPaintDeviceSP());
     }
     KisSerializableConfigurationSP create(const QDomElement& e) override {
-        KisSerializableConfigurationSP config = \
m_generator->factoryConfiguration(0); +        KisSerializableConfigurationSP config \
= m_generator->factoryConfiguration(KisPaintDeviceSP());  config->fromXML(e);
         return config;
     }
diff --git a/libs/image/kis_default_bounds.h b/libs/image/kis_default_bounds.h
index f25b088..c32449a 100644
--- a/libs/image/kis_default_bounds.h
+++ b/libs/image/kis_default_bounds.h
@@ -56,7 +56,7 @@ private:
 class KRITAIMAGE_EXPORT KisSelectionDefaultBounds : public KisDefaultBounds
 {
 public:
-    KisSelectionDefaultBounds(KisPaintDeviceSP parentPaintDevice = 0, KisImageWSP \
image = 0); +    KisSelectionDefaultBounds(KisPaintDeviceSP parentPaintDevice, \
KisImageWSP image = 0);  ~KisSelectionDefaultBounds();
 
     QRect bounds() const;
diff --git a/libs/image/kis_image.h b/libs/image/kis_image.h
index a8263c1..d420171 100644
--- a/libs/image/kis_image.h
+++ b/libs/image/kis_image.h
@@ -842,14 +842,14 @@ public Q_SLOTS:
      */
     KisProjectionUpdatesFilterSP projectionUpdatesFilter() const;
 
-    void refreshGraphAsync(KisNodeSP root = 0);
+    void refreshGraphAsync(KisNodeSP root = KisNodeSP());
     void refreshGraphAsync(KisNodeSP root, const QRect &rc);
     void refreshGraphAsync(KisNodeSP root, const QRect &rc, const QRect &cropRect);
 
     /**
      * Triggers synchronous recomposition of the projection
      */
-    void refreshGraph(KisNodeSP root = 0);
+    void refreshGraph(KisNodeSP root = KisNodeSP());
     void refreshGraph(KisNodeSP root, const QRect& rc, const QRect &cropRect);
     void initialRefreshGraph();
 
diff --git a/libs/image/kis_image_interfaces.h b/libs/image/kis_image_interfaces.h
index 2ced4b1..5635a88 100644
--- a/libs/image/kis_image_interfaces.h
+++ b/libs/image/kis_image_interfaces.h
@@ -52,7 +52,7 @@ public:
     virtual void disableDirtyRequests() = 0;
     virtual void enableDirtyRequests() = 0;
 
-    virtual void refreshGraphAsync(KisNodeSP root = 0) = 0;
+    virtual void refreshGraphAsync(KisNodeSP root) = 0;
     virtual void refreshGraphAsync(KisNodeSP root, const QRect &rc) = 0;
     virtual void refreshGraphAsync(KisNodeSP root, const QRect &rc, const QRect \
&cropRect) = 0;  
diff --git a/libs/image/kis_layer.h b/libs/image/kis_layer.h
index eaf5dd6..4515b29 100644
--- a/libs/image/kis_layer.h
+++ b/libs/image/kis_layer.h
@@ -254,7 +254,7 @@ public:
     /**
      * @return the list of effect masks
      */
-    QList<KisEffectMaskSP> effectMasks(KisNodeSP lastNode = 0) const;
+    QList<KisEffectMaskSP> effectMasks(KisNodeSP lastNode = KisNodeSP()) const;
 
     /**
      * Get the group layer that contains this layer.
diff --git a/libs/image/kis_layer_utils.cpp b/libs/image/kis_layer_utils.cpp
index 0d8a691..db2db31 100644
--- a/libs/image/kis_layer_utils.cpp
+++ b/libs/image/kis_layer_utils.cpp
@@ -593,8 +593,7 @@ namespace KisLayerUtils {
 
             if (!parent) {
                 KisNodeSP oldRoot = m_info->image->root();
-                KisNodeSP newRoot =
-                    new KisGroupLayer(m_info->image, "root", OPACITY_OPAQUE_U8);
+                KisNodeSP newRoot(new KisGroupLayer(m_info->image, "root", \
OPACITY_OPAQUE_U8));  
                 addCommand(new KisImageLayerAddCommand(m_info->image,
                                                        m_info->dstNode,
diff --git a/libs/image/kis_node.cpp b/libs/image/kis_node.cpp
index 8766f44..89735eb 100644
--- a/libs/image/kis_node.cpp
+++ b/libs/image/kis_node.cpp
@@ -297,7 +297,7 @@ void KisNode::setParent(KisNodeWSP parent)
 KisNodeSP KisNode::parent() const
 {
     QReadLocker l(&m_d->nodeSubgraphLock);
-    return m_d->parent.isValid() ? KisNodeSP(m_d->parent) : 0;
+    return m_d->parent.isValid() ? KisNodeSP(m_d->parent) : KisNodeSP();
 }
 
 KisBaseNodeSP KisNode::parentCallback() const
diff --git a/libs/image/kis_node_facade.h b/libs/image/kis_node_facade.h
index 74bff40..12b50cf 100644
--- a/libs/image/kis_node_facade.h
+++ b/libs/image/kis_node_facade.h
@@ -74,7 +74,7 @@ public:
      * @param node the node to be added
      * @param parent the parent node
      */
-    bool addNode(KisNodeSP node, KisNodeSP parent = 0);
+    bool addNode(KisNodeSP node, KisNodeSP parent = KisNodeSP());
 
     /**
      * Add already existing node to the graph.
diff --git a/libs/image/kis_paint_device.h b/libs/image/kis_paint_device.h
index d428248..e0b47c9 100644
--- a/libs/image/kis_paint_device.h
+++ b/libs/image/kis_paint_device.h
@@ -88,7 +88,7 @@ public:
      * @param defaultBounds boundaries of the device in case it is empty
      * @param name for debugging purposes
      */
-    KisPaintDevice(KisNodeWSP parent, const KoColorSpace * colorSpace, \
KisDefaultBoundsBaseSP defaultBounds = 0, const QString& name = QString()); +    \
KisPaintDevice(KisNodeWSP parent, const KoColorSpace * colorSpace, \
KisDefaultBoundsBaseSP defaultBounds = KisDefaultBoundsBaseSP(), const QString& name \
= QString());  
     /**
      * Creates a copy of this device.
diff --git a/libs/image/kis_painter.cc b/libs/image/kis_painter.cc
index 3cb0d5c..744f432 100644
--- a/libs/image/kis_painter.cc
+++ b/libs/image/kis_painter.cc
@@ -273,7 +273,7 @@ KisPaintDeviceSP \
KisPainter::convertToAlphaAsAlpha(KisPaintDeviceSP src)  {
     const KoColorSpace *srcCS = src->colorSpace();
     const QRect processRect = src->extent();
-    KisPaintDeviceSP dst = new \
KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()); +    KisPaintDeviceSP \
dst(new KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()));  
     KisSequentialConstIterator srcIt(src, processRect);
     KisSequentialIterator dstIt(dst, processRect);
@@ -295,7 +295,7 @@ KisPaintDeviceSP \
KisPainter::convertToAlphaAsGray(KisPaintDeviceSP src)  {
     const KoColorSpace *srcCS = src->colorSpace();
     const QRect processRect = src->extent();
-    KisPaintDeviceSP dst = new \
KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()); +    KisPaintDeviceSP \
dst(new KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()));  
     KisSequentialConstIterator srcIt(src, processRect);
     KisSequentialIterator dstIt(dst, processRect);
@@ -656,7 +656,7 @@ void KisPainter::bitBltImpl(qint32 dstX, qint32 dstY,
     the other bit blit operations. This one is longer than the rest in an effort to
     optimize speed and memory use */
     if (d->selection) {
-        KisPaintDeviceSP selectionProjection = d->selection->projection();
+        KisPaintDeviceSP selectionProjection(d->selection->projection());
         KisRandomConstAccessorSP maskIt = \
selectionProjection->createRandomConstAccessorNG(dstX, dstY);  
         while (rowsRemaining > 0) {
@@ -808,7 +808,7 @@ void KisPainter::fill(qint32 x, qint32 y, qint32 width, qint32 \
height, const KoC  KisRandomAccessorSP dstIt = d->device->createRandomAccessorNG(x, \
y);  
     if(d->selection) {
-        KisPaintDeviceSP selectionProjection = d->selection->projection();
+        KisPaintDeviceSP selectionProjection(d->selection->projection());
         KisRandomConstAccessorSP maskIt = \
selectionProjection->createRandomConstAccessorNG(x, y);  
         while(rowsRemaining > 0) {
@@ -936,7 +936,7 @@ void KisPainter::bltFixed(qint32 dstX, qint32 dstY,
     if (d->selection) {
         /* d->selection is a KisPaintDevice, so first a readBytes is performed to
         get the area of interest... */
-        KisPaintDeviceSP selectionProjection = d->selection->projection();
+        KisPaintDeviceSP selectionProjection(d->selection->projection());
         quint8* selBytes = 0;
         try {
             selBytes = new quint8[srcWidth * srcHeight * \
selectionProjection->pixelSize()]; @@ -2807,7 +2807,7 @@ void \
KisPainter::renderMirrorMask(QRect rc, KisFixedPaintDeviceSP dab, KisFixedP  
 void KisPainter::renderMirrorMask(QRect rc, KisPaintDeviceSP dab){
     if (d->mirrorHorizontally || d->mirrorVertically){
-        KisFixedPaintDeviceSP mirrorDab = new \
KisFixedPaintDevice(dab->colorSpace()); +        KisFixedPaintDeviceSP mirrorDab(new \
KisFixedPaintDevice(dab->colorSpace()));  QRect dabRc( QPoint(0,0), \
QSize(rc.width(),rc.height()) );  mirrorDab->setRect(dabRc);
         mirrorDab->initialize();
@@ -2821,7 +2821,7 @@ void KisPainter::renderMirrorMask(QRect rc, KisPaintDeviceSP \
dab){  void KisPainter::renderMirrorMask(QRect rc, KisPaintDeviceSP dab, int sx, int \
sy, KisFixedPaintDeviceSP mask)  {
     if (d->mirrorHorizontally || d->mirrorVertically){
-        KisFixedPaintDeviceSP mirrorDab = new \
KisFixedPaintDevice(dab->colorSpace()); +        KisFixedPaintDeviceSP mirrorDab(new \
KisFixedPaintDevice(dab->colorSpace()));  QRect dabRc( QPoint(0,0), \
QSize(rc.width(),rc.height()) );  mirrorDab->setRect(dabRc);
         mirrorDab->initialize();
diff --git a/libs/image/kis_pixel_selection.h b/libs/image/kis_pixel_selection.h
index bc2d135..4db95de 100644
--- a/libs/image/kis_pixel_selection.h
+++ b/libs/image/kis_pixel_selection.h
@@ -42,7 +42,7 @@ public:
      * Create a new KisPixelSelection. This selection will not have a
      * parent paint device.
      */
-    KisPixelSelection(KisDefaultBoundsBaseSP defaultBounds = 0, KisSelectionWSP \
parentSelection = 0); +    KisPixelSelection(KisDefaultBoundsBaseSP defaultBounds = \
KisDefaultBoundsBaseSP(), KisSelectionWSP parentSelection = KisSelectionWSP());  
     /**
      * Copy the selection
diff --git a/libs/image/kis_processing_information.h \
b/libs/image/kis_processing_information.h index 9b14dbe..8c3f612 100644
--- a/libs/image/kis_processing_information.h
+++ b/libs/image/kis_processing_information.h
@@ -32,7 +32,7 @@
 class KRITAIMAGE_EXPORT KisConstProcessingInformation
 {
 public:
-    KisConstProcessingInformation(const KisPaintDeviceSP device, const QPoint& \
topLeft, const KisSelectionSP selection = 0); +    \
KisConstProcessingInformation(const KisPaintDeviceSP device, const QPoint& topLeft, \
                const KisSelectionSP selection);
     KisConstProcessingInformation(const KisConstProcessingInformation& _rhs);
     KisConstProcessingInformation& operator=(const KisConstProcessingInformation& \
_rhs);  ~KisConstProcessingInformation();
@@ -62,7 +62,7 @@ private:
 class KRITAIMAGE_EXPORT KisProcessingInformation : public \
KisConstProcessingInformation  {
 public:
-    KisProcessingInformation(KisPaintDeviceSP device, const QPoint& topLeft, const \
KisSelectionSP selection = 0); +    KisProcessingInformation(KisPaintDeviceSP device, \
const QPoint& topLeft, const KisSelectionSP selection);  \
                KisProcessingInformation(const KisProcessingInformation& _rhs);
     KisProcessingInformation& operator=(const KisProcessingInformation& _rhs);
     ~KisProcessingInformation();
diff --git a/libs/image/kis_regenerate_frame_stroke_strategy.cpp \
b/libs/image/kis_regenerate_frame_stroke_strategy.cpp index 0e11686..329e76a 100644
--- a/libs/image/kis_regenerate_frame_stroke_strategy.cpp
+++ b/libs/image/kis_regenerate_frame_stroke_strategy.cpp
@@ -128,7 +128,7 @@ void KisRegenerateFrameStrokeStrategy::initStrokeCallback()
         m_d->interface->saveAndResetCurrentTime(m_d->frameId, \
&m_d->previousFrameId);  } else if (m_d->type == CURRENT_FRAME) {
         m_d->interface->blockFrameInvalidation(true);
-        m_d->interface->updatesFacade()->refreshGraphAsync();
+        m_d->interface->updatesFacade()->refreshGraphAsync(KisNodeSP());
     }
 }
 
diff --git a/libs/image/kis_selection.cc b/libs/image/kis_selection.cc
index ac237af..278fafc 100644
--- a/libs/image/kis_selection.cc
+++ b/libs/image/kis_selection.cc
@@ -51,7 +51,7 @@ KisSelection::KisSelection(KisDefaultBoundsBaseSP defaultBounds)
     : m_d(new Private)
 {
     if (!defaultBounds) {
-        defaultBounds = new KisSelectionDefaultBounds();
+        defaultBounds = new KisSelectionDefaultBounds(KisPaintDeviceSP());
     }
     m_d->defaultBounds = defaultBounds;
 
diff --git a/libs/image/kis_selection.h b/libs/image/kis_selection.h
index 88f8fa4..e4dcb13 100644
--- a/libs/image/kis_selection.h
+++ b/libs/image/kis_selection.h
@@ -68,7 +68,7 @@ public:
      * @param defaultBounds defines the bounds of the selection when
      * Select All is initiated.
      */
-    KisSelection(KisDefaultBoundsBaseSP defaultBounds = 0);
+    KisSelection(KisDefaultBoundsBaseSP defaultBounds = KisDefaultBoundsBaseSP());
 
     /**
      * Copy the selection. The selection components are copied, too.
diff --git a/libs/image/kis_selection_based_layer.cpp \
b/libs/image/kis_selection_based_layer.cpp index d30feb5..623eb7b 100644
--- a/libs/image/kis_selection_based_layer.cpp
+++ b/libs/image/kis_selection_based_layer.cpp
@@ -63,7 +63,7 @@ KisSelectionBasedLayer::KisSelectionBasedLayer(KisImageWSP image,
     else
         setInternalSelection(selection);
 
-    m_d->paintDevice = new KisPaintDevice(this, image->colorSpace(), new \
KisDefaultBounds(image)); +    m_d->paintDevice = KisPaintDeviceSP(new \
KisPaintDevice(this, image->colorSpace(), KisDefaultBoundsSP(new \
                KisDefaultBounds(image))));
     connect(image.data(), SIGNAL(sigSizeChanged(QPointF,QPointF)), \
SLOT(slotImageSizeChanged()));  }
 
@@ -86,7 +86,7 @@ KisSelectionBasedLayer::~KisSelectionBasedLayer()
 
 void KisSelectionBasedLayer::initSelection()
 {
-    m_d->selection = new KisSelection(new KisDefaultBounds(image()));
+    m_d->selection = KisSelectionSP(new KisSelection(KisDefaultBoundsSP(new \
                KisDefaultBounds(image()))));
     m_d->selection->pixelSelection()->setDefaultPixel(KoColor(Qt::white, \
m_d->selection->pixelSelection()->colorSpace()));  \
m_d->selection->setParentNode(this);  m_d->selection->updateProjection();
@@ -106,7 +106,7 @@ void KisSelectionBasedLayer::slotImageSizeChanged()
 
 void KisSelectionBasedLayer::setImage(KisImageWSP image)
 {
-    m_d->paintDevice->setDefaultBounds(new KisDefaultBounds(image));
+    m_d->paintDevice->setDefaultBounds(KisDefaultBoundsSP(new \
KisDefaultBounds(image)));  KisLayer::setImage(image);
 
     connect(image.data(), SIGNAL(sigSizeChanged(QPointF,QPointF)), \
SLOT(slotImageSizeChanged())); @@ -140,7 +140,7 @@ void \
KisSelectionBasedLayer::setUseSelectionInProjection(bool value) const  
 KisSelectionSP KisSelectionBasedLayer::fetchComposedInternalSelection(const QRect \
&rect) const  {
-    if (!m_d->selection) return 0;
+    if (!m_d->selection) return KisSelectionSP();
     m_d->selection->updateProjection(rect);
 
     KisSelectionSP tempSelection = m_d->selection;
@@ -197,7 +197,7 @@ void KisSelectionBasedLayer::resetCache(const KoColorSpace \
*colorSpace)  if (!m_d->paintDevice ||
             *m_d->paintDevice->colorSpace() != *colorSpace) {
 
-        m_d->paintDevice = new KisPaintDevice(this, colorSpace, new \
KisDefaultBounds(image())); +        m_d->paintDevice = KisPaintDeviceSP(new \
KisPaintDevice(KisNodeWSP(this), colorSpace, new KisDefaultBounds(image())));  } else \
{  m_d->paintDevice->clear();
     }
diff --git a/libs/image/lazybrush/kis_colorize_mask.cpp \
b/libs/image/lazybrush/kis_colorize_mask.cpp index c5da3dd..82a5d1e 100644
--- a/libs/image/lazybrush/kis_colorize_mask.cpp
+++ b/libs/image/lazybrush/kis_colorize_mask.cpp
@@ -73,7 +73,7 @@ struct KisColorizeMask::Private
           offset(rhs.offset)
     {
         Q_FOREACH (const KeyStroke &stroke, rhs.keyStrokes) {
-            keyStrokes << KeyStroke(new KisPaintDevice(*stroke.dev), stroke.color, \
stroke.isTransparent); +            keyStrokes << KeyStroke(KisPaintDeviceSP(new \
KisPaintDevice(*stroke.dev)), stroke.color, stroke.isTransparent);  }
     }
 
@@ -131,7 +131,7 @@ KisColorizeMask::KisColorizeMask(const KisColorizeMask& rhs)
 
 void KisColorizeMask::initializeCompositeOp()
 {
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer(dynamic_cast<KisLayer*>(parent().data()));
     if (!parentLayer || !parentLayer->original()) return;
 
     KisImageSP image = parentLayer->image();
@@ -225,7 +225,7 @@ KUndo2Command* KisColorizeMask::setColorSpace(const KoColorSpace \
* dstColorSpace  KUndo2Command *strokesConversionCommand =
         new SetKeyStrokesColorSpaceCommand(
             dstColorSpace, renderingIntent, conversionFlags,
-            &m_d->keyStrokes, this);
+            &m_d->keyStrokes, KisColorizeMaskSP(this));
     strokesConversionCommand->redo();
 
     composite->addCommand(new SkipFirstRedoWrapper(strokesConversionCommand));
@@ -259,7 +259,7 @@ void KisColorizeMask::slotUpdateRegenerateFilling()
     m_d->originalSequenceNumber = src->sequenceNumber();
     m_d->coloringProjection->clear();
 
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer(dynamic_cast<KisLayer*>(parent().data()));
     if (!parentLayer) return;
 
     KisImageSP image = parentLayer->image();
@@ -270,7 +270,7 @@ void KisColorizeMask::slotUpdateRegenerateFilling()
                                           m_d->filteredSource,
                                           filteredSourceValid,
                                           image->bounds(),
-                                          this);
+                                          KisColorizeMaskSP(this));
 
         Q_FOREACH (const KeyStroke &stroke, m_d->keyStrokes) {
             const KoColor color =
@@ -327,7 +327,7 @@ void KisColorizeMask::setSectionModelProperties(const \
KisBaseNode::PropertyList  
 KisPaintDeviceSP KisColorizeMask::paintDevice() const
 {
-    return m_d->showKeyStrokes ? m_d->fakePaintDevice : 0;
+    return m_d->showKeyStrokes ? m_d->fakePaintDevice : KisPaintDeviceSP();
 }
 
 KisPaintDeviceSP KisColorizeMask::coloringProjection() const
@@ -492,15 +492,15 @@ QRect KisColorizeMask::nonDependentExtent() const
 
 KisImageSP KisColorizeMask::fetchImage() const
 {
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
-    if (!parentLayer) return 0;
+    KisLayerSP parentLayer(dynamic_cast<KisLayer*>(parent().data()));
+    if (!parentLayer) return KisImageSP();
 
     return parentLayer->image();
 }
 
 void KisColorizeMask::setImage(KisImageWSP image)
 {
-    KisDefaultBoundsSP bounds = new KisDefaultBounds(image);
+    KisDefaultBoundsSP bounds(new KisDefaultBounds(image));
 
     auto it = m_d->keyStrokes.begin();
     for(; it != m_d->keyStrokes.end(); ++it) {
@@ -534,7 +534,7 @@ void KisColorizeMask::setCurrentColor(const KoColor &_color)
     if (it == m_d->keyStrokes.constEnd()) {
         activeDevice = new \
KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8());  \
                activeDevice->setParentNode(this);
-        activeDevice->setDefaultBounds(new KisDefaultBounds(fetchImage()));
+        activeDevice->setDefaultBounds(KisDefaultBoundsBaseSP(new \
KisDefaultBounds(fetchImage())));  newKeyStroke = true;
     } else {
         activeDevice = it->dev;
@@ -593,7 +593,7 @@ void KisColorizeMask::mergeToLayer(KisNodeSP layer, \
KisPostExecutionUndoAdapter  
         KUndo2Command *cmd =
             new KeyStrokeAddRemoveCommand(
-                true, m_d->keyStrokes.size(), key, &m_d->keyStrokes, this);
+                true, m_d->keyStrokes.size(), key, &m_d->keyStrokes, \
KisColorizeMaskSP(this));  cmd->redo();
         fakeUndoAdapter.addCommand(toQShared(cmd));
     }
@@ -628,7 +628,7 @@ void KisColorizeMask::mergeToLayer(KisNodeSP layer, \
KisPostExecutionUndoAdapter  if (stroke.dev->exactBounds().isEmpty()) {
                 KUndo2Command *cmd =
                     new KeyStrokeAddRemoveCommand(
-                        false, index, stroke, &m_d->keyStrokes, this);
+                        false, index, stroke, &m_d->keyStrokes, \
KisColorizeMaskSP(this));  
                 cmd->redo();
                 fakeUndoAdapter.addCommand(toQShared(cmd));
@@ -757,13 +757,13 @@ void KisColorizeMask::setKeyStrokesColors(KeyStrokeColors \
colors)  newList[i].isTransparent = colors.transparentIndex == i;
     }
 
-    KisProcessingApplicator applicator(fetchImage(), this,
+    KisProcessingApplicator applicator(fetchImage(), KisNodeSP(this),
                                        KisProcessingApplicator::NONE,
                                        KisImageSignalVector(),
                                        kundo2_i18n("Change Key Stroke Color"));
     applicator.applyCommand(
         new SetKeyStrokeColorsCommand(
-            newList, &m_d->keyStrokes, this));
+            newList, &m_d->keyStrokes, KisColorizeMaskSP(this)));
 
     applicator.end();
 }
@@ -784,13 +784,13 @@ void KisColorizeMask::removeKeyStroke(const KoColor &_color)
 
     const int index = it - m_d->keyStrokes.begin();
 
-    KisProcessingApplicator applicator(fetchImage(), this,
+    KisProcessingApplicator applicator(KisImageWSP(fetchImage()), KisNodeSP(this),
                                        KisProcessingApplicator::NONE,
                                        KisImageSignalVector(),
                                        kundo2_i18n("Remove Key Stroke"));
     applicator.applyCommand(
         new KeyStrokeAddRemoveCommand(
-            false, index, *it, &m_d->keyStrokes, this));
+            false, index, *it, &m_d->keyStrokes, KisColorizeMaskSP(this)));
 
     applicator.end();
 }
diff --git a/libs/image/lazybrush/kis_multiway_cut.cpp \
b/libs/image/lazybrush/kis_multiway_cut.cpp index 2e38af2..bd750fb 100644
--- a/libs/image/lazybrush/kis_multiway_cut.cpp
+++ b/libs/image/lazybrush/kis_multiway_cut.cpp
@@ -104,7 +104,7 @@ bool keyStrokesOrder(const KeyStroke &a, const KeyStroke &b)
 
 void KisMultiwayCut::run()
 {
-    KisPaintDeviceSP other = new \
KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()); +    KisPaintDeviceSP \
other(new KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()));  
     /**
      * First sort all the key strokes in a way that all the
diff --git a/libs/image/processing/kis_crop_processing_visitor.cpp \
b/libs/image/processing/kis_crop_processing_visitor.cpp index 4e57038..946122a 100644
--- a/libs/image/processing/kis_crop_processing_visitor.cpp
+++ b/libs/image/processing/kis_crop_processing_visitor.cpp
@@ -51,7 +51,7 @@ void KisCropProcessingVisitor::moveNodeImpl(KisNode *node, \
KisUndoAdapter *undoA  if (m_moveLayers) {
         QPoint oldPos(node->x(), node->y());
         QPoint newPos(node->x() - m_rect.x(), node->y() - m_rect.y());
-        KUndo2Command *command = new KisNodeMoveCommand2(node, oldPos, newPos);
+        KUndo2Command *command = new KisNodeMoveCommand2(KisNodeSP(node), oldPos, \
newPos);  undoAdapter->addCommand(command);
     }
 }
diff --git a/libs/image/tests/kis_filter_processing_information_test.cpp \
b/libs/image/tests/kis_filter_processing_information_test.cpp index 92f4d99..8e8724d \
                100644
--- a/libs/image/tests/kis_filter_processing_information_test.cpp
+++ b/libs/image/tests/kis_filter_processing_information_test.cpp
@@ -30,8 +30,7 @@ void KisProcessingInformationTest::testCreation()
 {
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    KisProcessingInformation test(dev, QPoint(0, 0));
+    KisProcessingInformation test(dev, QPoint(0, 0), KisSelectionSP());
 }
 
-
 QTEST_MAIN(KisProcessingInformationTest)
diff --git a/libs/image/tiles3/kis_memento_item.h \
b/libs/image/tiles3/kis_memento_item.h index 1dcb6dc..0d1c8c5 100644
--- a/libs/image/tiles3/kis_memento_item.h
+++ b/libs/image/tiles3/kis_memento_item.h
@@ -145,7 +145,7 @@ public:
 
     inline KisTileSP tile(KisMementoManager *mm) {
         Q_ASSERT(m_tileData);
-        return new KisTile(m_col, m_row, m_tileData, mm);
+        return KisTileSP(new KisTile(m_col, m_row, m_tileData, mm));
     }
 
     inline enumType type() {
diff --git a/libs/image/tiles3/kis_memento_manager.cc \
b/libs/image/tiles3/kis_memento_manager.cc index a4900ea..0af0bb2 100644
--- a/libs/image/tiles3/kis_memento_manager.cc
+++ b/libs/image/tiles3/kis_memento_manager.cc
@@ -223,7 +223,7 @@ KisTileSP KisMementoManager::getCommitedTile(qint32 col, qint32 \
                row)
      * no named transaction is in progress.
      */
     if(!namedTransactionInProgress())
-        return 0;
+        return KisTileSP();
 
     KisMementoItemSP mi = m_headsHashTable.getReadOnlyTileLazy(col, row);
     Q_ASSERT(mi);
diff --git a/libs/image/tiles3/kis_tile_hash_table_p.h \
b/libs/image/tiles3/kis_tile_hash_table_p.h index d37e5f3..adc10ab 100644
--- a/libs/image/tiles3/kis_tile_hash_table_p.h
+++ b/libs/image/tiles3/kis_tile_hash_table_p.h
@@ -52,14 +52,14 @@ KisTileHashTableTraits<T>::KisTileHashTableTraits(const \
KisTileHashTableTraits<T  
 
     TileTypeSP foreignTile;
-    TileType* nativeTile;
-    TileType* nativeTileHead;
+    TileTypeSP nativeTile;
+    TileTypeSP nativeTileHead;
     for (qint32 i = 0; i < TABLE_SIZE; i++) {
         nativeTileHead = 0;
 
         foreignTile = ht.m_hashTable[i];
         while (foreignTile) {
-            nativeTile = new TileType(*foreignTile, m_mementoManager);
+            nativeTile = TileTypeSP(new TileType(*foreignTile, m_mementoManager));
             nativeTile->setNext(nativeTileHead);
             nativeTileHead = nativeTile;
 
@@ -100,7 +100,7 @@ KisTileHashTableTraits<T>::getTile(qint32 col, qint32 row)
         }
     }
 
-    return 0;
+    return TileTypeSP();
 }
 
 template<class T>
@@ -125,7 +125,7 @@ KisTileHashTableTraits<T>::unlinkTile(qint32 col, qint32 row)
 {
     qint32 idx = calculateHash(col, row);
     TileTypeSP tile = m_hashTable[idx];
-    TileTypeSP prevTile = 0;
+    TileTypeSP prevTile;
 
     for (; tile; tile = tile->next()) {
         if (tile->col() == col &&
@@ -142,9 +142,9 @@ KisTileHashTableTraits<T>::unlinkTile(qint32 col, qint32 row)
              * we need to disconnects the tile from memento manager
              * explicitly
              */
-            tile->setNext(0);
+            tile->setNext(TileTypeSP());
             tile->notifyDead();
-            tile = 0;
+            tile = TileTypeSP();
 
             m_numTiles--;
             return tile;
@@ -152,7 +152,7 @@ KisTileHashTableTraits<T>::unlinkTile(qint32 col, qint32 row)
         prevTile = tile;
     }
 
-    return 0;
+    return TileTypeSP();
 }
 
 template<class T>
@@ -255,7 +255,7 @@ template<class T>
 void KisTileHashTableTraits<T>::clear()
 {
     QWriteLocker locker(&m_lock);
-    TileTypeSP tile = 0;
+    TileTypeSP tile = TileTypeSP();
     qint32 i;
 
     for (i = 0; i < TABLE_SIZE; i++) {
@@ -269,7 +269,7 @@ void KisTileHashTableTraits<T>::clear()
              * About disconnection of tiles see a comment in unlinkTile()
              */
 
-            tmp->setNext(0);
+            tmp->setNext(TileTypeSP());
             tmp->notifyDead();
             tmp = 0;
 
diff --git a/libs/image/tiles3/kis_tiled_data_manager.cc \
b/libs/image/tiles3/kis_tiled_data_manager.cc index 5cf36da..2191de5 100644
--- a/libs/image/tiles3/kis_tiled_data_manager.cc
+++ b/libs/image/tiles3/kis_tiled_data_manager.cc
@@ -388,7 +388,7 @@ void KisTiledDataManager::clear(QRect clearRect, const quint8 \
*clearPixel)  needsRecalculateExtent = true;
 
                  if (!pixelBytesAreDefault) {
-                     KisTileSP clearedTile = new KisTile(column, row, td, \
m_mementoManager); +                     KisTileSP clearedTile = KisTileSP(new \
KisTile(column, row, td, m_mementoManager));  m_hashTable->addTile(clearedTile);
                      updateExtent(column, row);
                  }
@@ -491,7 +491,7 @@ void KisTiledDataManager::bitBltImpl(KisTiledDataManager *srcDM, \
const QRect &re  
                  srcTile->lockForRead();
                  KisTileData *td = srcTile->tileData();
-                 KisTileSP clonedTile = new KisTile(column, row, td, \
m_mementoManager); +                 KisTileSP clonedTile = KisTileSP(new \
KisTile(column, row, td, m_mementoManager));  srcTile->unlock();
 
                  m_hashTable->addTile(clonedTile);
@@ -552,7 +552,7 @@ void KisTiledDataManager::bitBltRoughImpl(KisTiledDataManager \
*srcDM, const QRec  
             srcTile->lockForRead();
             KisTileData *td = srcTile->tileData();
-            KisTileSP clonedTile = new KisTile(column, row, td, m_mementoManager);
+            KisTileSP clonedTile = KisTileSP(new KisTile(column, row, td, \
m_mementoManager));  srcTile->unlock();
 
             m_hashTable->addTile(clonedTile);
diff --git a/libs/image/tiles3/swap/kis_tile_compressor_factory.h \
b/libs/image/tiles3/swap/kis_tile_compressor_factory.h index 80a4f36..610b3e5 100644
--- a/libs/image/tiles3/swap/kis_tile_compressor_factory.h
+++ b/libs/image/tiles3/swap/kis_tile_compressor_factory.h
@@ -28,14 +28,14 @@ public:
     static KisAbstractTileCompressorSP create(qint32 version) {
         switch(version) {
         case 1:
-            return new KisLegacyTileCompressor();
+            return KisAbstractTileCompressorSP(new KisLegacyTileCompressor());
             break;
         case 2:
-            return new KisTileCompressor2();
+            return KisAbstractTileCompressorSP(new KisTileCompressor2());
             break;
         default:
             qFatal("Unknown version of the tiles");
-            return 0;
+            return KisAbstractTileCompressorSP();
         };
     }
 
diff --git a/sdk/tests/testing_nodes.h b/sdk/tests/testing_nodes.h
index ea37de4..6855a0e 100644
--- a/sdk/tests/testing_nodes.h
+++ b/sdk/tests/testing_nodes.h
@@ -25,15 +25,15 @@ namespace TestUtil {
 
 struct DefaultNode : public KisNode {
     KisPaintDeviceSP paintDevice() const {
-        return 0;
+        return KisPaintDeviceSP();
     }
 
     KisPaintDeviceSP original() const {
-        return 0;
+        return KisPaintDeviceSP();
     }
 
     KisPaintDeviceSP projection() const {
-        return 0;
+        return KisPaintDeviceSP();
     }
 
     bool allowAsChild(KisNodeSP) const {
diff --git a/sdk/tests/testutil.h b/sdk/tests/testutil.h
index a9db075..5af3e7b 100644
--- a/sdk/tests/testutil.h
+++ b/sdk/tests/testutil.h
@@ -63,7 +63,7 @@ inline KisNodeSP findNode(KisNodeSP root, const QString &name) {
         child = child->nextSibling();
     }
 
-    return 0;
+    return KisNodeSP();
 }
 
 
@@ -480,7 +480,7 @@ class TestNode : public DefaultNode
     Q_OBJECT
 public:
     KisNodeSP clone() const {
-        return new TestNode(*this);
+        return KisNodeSP(new TestNode(*this));
     }
 };
 
@@ -550,8 +550,8 @@ struct MaskParent
         const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
         undoStore = new KisSurrogateUndoStore();
         image = new KisImage(undoStore, imageRect.width(), imageRect.height(), cs, \
                "test image");
-        layer = new KisPaintLayer(image, "paint1", OPACITY_OPAQUE_U8);
-        image->addNode(layer);
+        layer = KisPaintLayerSP(new KisPaintLayer(image, "paint1", \
OPACITY_OPAQUE_U8)); +        image->addNode(KisNodeSP(layer.data()));
     }
 
     KisSurrogateUndoStore *undoStore;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic