diff --git a/src/imports/qtcanvas3d/teximage3d.cpp b/src/imports/qtcanvas3d/teximage3d.cpp index 652e8c2b7360d464d8e04a35195feb9570cb775e..8528d159f70829ac8f84c7e9965d715018149e0d 100644 --- a/src/imports/qtcanvas3d/teximage3d.cpp +++ b/src/imports/qtcanvas3d/teximage3d.cpp @@ -198,7 +198,7 @@ void CanvasTextureImage::cleanupNetworkReply() CanvasTextureImage::~CanvasTextureImage() { - if (m_parentFactory) + if (!m_parentFactory.isNull()) m_parentFactory->handleImageDestroyed(this); cleanupNetworkReply(); delete[] m_pixelCache; @@ -257,7 +257,8 @@ void CanvasTextureImage::load() return; setImageState(LOADING); - m_parentFactory->handleImageLoadingStarted(this); + if (!m_parentFactory.isNull()) + m_parentFactory->handleImageLoadingStarted(this); emit imageLoadingStarted(this); QNetworkRequest request(m_source); diff --git a/src/imports/qtcanvas3d/teximage3d_p.h b/src/imports/qtcanvas3d/teximage3d_p.h index 6789a2eced9a8dc57c5b01929c019f545179d0ae..59bd0d6c9dcea5a68299d6eaaa61e65ac66bd9bd 100644 --- a/src/imports/qtcanvas3d/teximage3d_p.h +++ b/src/imports/qtcanvas3d/teximage3d_p.h @@ -51,6 +51,7 @@ #include "abstractobject3d_p.h" #include <QtCore/QUrl> +#include <QtCore/QPointer> #include <QtGui/QImage> #include <QtNetwork/QNetworkAccessManager> #include <QtNetwork/QNetworkReply> @@ -159,7 +160,7 @@ private: bool m_pixelCacheFlipY; QImage m_glImage; QVariant *m_anyValue; - CanvasTextureImageFactory *m_parentFactory; + QPointer<CanvasTextureImageFactory> m_parentFactory; }; QT_CANVAS3D_END_NAMESPACE