diff options
Diffstat (limited to 'src/render/texture/qabstracttexture.cpp')
-rw-r--r-- | src/render/texture/qabstracttexture.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/render/texture/qabstracttexture.cpp b/src/render/texture/qabstracttexture.cpp index 36ee6851f..b62424eb9 100644 --- a/src/render/texture/qabstracttexture.cpp +++ b/src/render/texture/qabstracttexture.cpp @@ -273,6 +273,8 @@ void QAbstractTexture::addTextureImage(QAbstractTextureImage *textureImage) if (!d->m_textureImages.contains(textureImage)) { d->m_textureImages.append(textureImage); + // Ensures proper bookkeeping + d->registerDestructionHelper(textureImage, &QAbstractTexture::removeTextureImage, d->m_textureImages); if (textureImage->parent() && textureImage->parent() != this) qWarning() << "A QAbstractTextureImage was shared, expect a crash, undefined behavior at best"; @@ -304,6 +306,8 @@ void QAbstractTexture::removeTextureImage(QAbstractTextureImage *textureImage) d->notifyObservers(change); } d->m_textureImages.removeOne(textureImage); + // Remove bookkeeping connection + d->unregisterDestructionHelper(textureImage); } /*! |