diff options
author | Heikkinen Miikka <miikka.heikkinen@digia.com> | 2013-09-05 11:56:47 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-05 12:33:32 +0300 |
commit | 8f1ad0ed8c88927fb44350de477200cf09c231fb (patch) | |
tree | b2ec3b65f4f3deb12ddf11aecd9e65ab46b7eecb /src | |
parent | 263f8a781050512382909c5173373a4ced21ae60 (diff) |
Fixing more Valgrind found problems
Change-Id: I11023faee65f7a660d63986bd2f7211fcd90964a
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/datavis3d/data/qitemmodelbardataproxy.cpp | 1 | ||||
-rw-r--r-- | src/datavis3d/data/qitemmodelscatterdataproxy.cpp | 1 | ||||
-rw-r--r-- | src/datavis3d/engine/abstract3dcontroller.cpp | 7 | ||||
-rw-r--r-- | src/datavis3d/engine/abstract3drenderer.cpp | 2 | ||||
-rw-r--r-- | src/datavis3d/engine/scatter3drenderer.cpp | 21 | ||||
-rw-r--r-- | src/datavis3d/engine/surface3drenderer.cpp | 7 | ||||
-rw-r--r-- | src/datavis3d/utils/surfaceobject.cpp | 13 |
7 files changed, 19 insertions, 33 deletions
diff --git a/src/datavis3d/data/qitemmodelbardataproxy.cpp b/src/datavis3d/data/qitemmodelbardataproxy.cpp index 8a25f123..8b72d934 100644 --- a/src/datavis3d/data/qitemmodelbardataproxy.cpp +++ b/src/datavis3d/data/qitemmodelbardataproxy.cpp @@ -152,6 +152,7 @@ QItemModelBarDataProxyPrivate::QItemModelBarDataProxyPrivate(QItemModelBarDataPr QItemModelBarDataProxyPrivate::~QItemModelBarDataProxyPrivate() { + delete m_itemModelHandler; } QItemModelBarDataProxy *QItemModelBarDataProxyPrivate::qptr() diff --git a/src/datavis3d/data/qitemmodelscatterdataproxy.cpp b/src/datavis3d/data/qitemmodelscatterdataproxy.cpp index dfd10d8d..5a84b7f1 100644 --- a/src/datavis3d/data/qitemmodelscatterdataproxy.cpp +++ b/src/datavis3d/data/qitemmodelscatterdataproxy.cpp @@ -148,6 +148,7 @@ QItemModelScatterDataProxyPrivate::QItemModelScatterDataProxyPrivate(QItemModelS QItemModelScatterDataProxyPrivate::~QItemModelScatterDataProxyPrivate() { + delete m_itemModelHandler; } QItemModelScatterDataProxy *QItemModelScatterDataProxyPrivate::qptr() diff --git a/src/datavis3d/engine/abstract3dcontroller.cpp b/src/datavis3d/engine/abstract3dcontroller.cpp index cb50faf5..9b6040c1 100644 --- a/src/datavis3d/engine/abstract3dcontroller.cpp +++ b/src/datavis3d/engine/abstract3dcontroller.cpp @@ -30,6 +30,7 @@ #include "q3dinputhandler.h" #endif +#include <QThread> QT_DATAVIS3D_BEGIN_NAMESPACE @@ -69,6 +70,12 @@ Abstract3DController::~Abstract3DController() delete m_cameraHelper; delete m_inputHandler; // Attached axes are children, so no need to explicitly delete them + + // Renderer can be in another thread, don't delete it directly in that case + if (m_renderer && m_renderer->thread() != QThread::currentThread()) + m_renderer->deleteLater(); + else + delete m_renderer; } void Abstract3DController::setRenderer(Abstract3DRenderer *renderer) diff --git a/src/datavis3d/engine/abstract3drenderer.cpp b/src/datavis3d/engine/abstract3drenderer.cpp index c53adea0..c3cc7b7e 100644 --- a/src/datavis3d/engine/abstract3drenderer.cpp +++ b/src/datavis3d/engine/abstract3drenderer.cpp @@ -24,7 +24,7 @@ QT_DATAVIS3D_BEGIN_NAMESPACE Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller) - : QObject(controller), + : QObject(0), m_controller(controller), m_hasNegativeValues(false), m_cachedTheme(), diff --git a/src/datavis3d/engine/scatter3drenderer.cpp b/src/datavis3d/engine/scatter3drenderer.cpp index d28fc62c..ad78c3a0 100644 --- a/src/datavis3d/engine/scatter3drenderer.cpp +++ b/src/datavis3d/engine/scatter3drenderer.cpp @@ -88,7 +88,6 @@ Scatter3DRenderer::Scatter3DRenderer(Scatter3DController *controller) Scatter3DRenderer::~Scatter3DRenderer() { - //qDebug() << __FUNCTION__; m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer); m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer); m_textureHelper->deleteTexture(&m_selectionTexture); @@ -98,9 +97,11 @@ Scatter3DRenderer::~Scatter3DRenderer() delete m_depthShader; delete m_selectionShader; delete m_backgroundShader; + delete m_labelShader; delete m_dotObj; delete m_backgroundObj; delete m_gridLineObj; + delete m_labelObj; } void Scatter3DRenderer::initializeOpenGL() @@ -161,8 +162,6 @@ void Scatter3DRenderer::updateDataModel(QScatterDataProxy *dataProxy) void Scatter3DRenderer::render(CameraHelper *camera, const GLuint defaultFboHandle) { - //qDebug() << __FUNCTION__; - // Handle GL state setup for FBO buffers and clearing of the render surface Abstract3DRenderer::render(camera, defaultFboHandle); @@ -181,7 +180,6 @@ void Scatter3DRenderer::render(CameraHelper *camera, const GLuint defaultFboHand void Scatter3DRenderer::drawScene(CameraHelper *camera, const GLuint defaultFboHandle) { - //qDebug() << __FUNCTION__; GLfloat backgroundRotation = 0; // Specify viewport @@ -1350,7 +1348,6 @@ void Scatter3DRenderer::updateSelectedItemIndex(int index) void Scatter3DRenderer::handleResize() { - //qDebug() << __FUNCTION__; if (m_cachedBoundingRect.width() == 0 || m_cachedBoundingRect.height() == 0) return; @@ -1412,7 +1409,6 @@ void Scatter3DRenderer::updateShadowQuality(QDataVis::ShadowQuality quality) void Scatter3DRenderer::loadMeshFile() { - //qDebug() << __FUNCTION__; QString objectFileName = m_cachedObjFile; if (m_dotObj) delete m_dotObj; @@ -1422,7 +1418,6 @@ void Scatter3DRenderer::loadMeshFile() void Scatter3DRenderer::loadBackgroundMesh() { - //qDebug() << __FUNCTION__; if (m_backgroundObj) delete m_backgroundObj; m_backgroundObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/background")); @@ -1431,7 +1426,6 @@ void Scatter3DRenderer::loadBackgroundMesh() void Scatter3DRenderer::loadGridLineMesh() { - //qDebug() << __FUNCTION__; if (m_gridLineObj) delete m_gridLineObj; m_gridLineObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/bar")); @@ -1440,7 +1434,6 @@ void Scatter3DRenderer::loadGridLineMesh() void Scatter3DRenderer::loadLabelMesh() { - //qDebug() << __FUNCTION__; if (m_labelObj) delete m_labelObj; m_labelObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/label")); @@ -1449,7 +1442,6 @@ void Scatter3DRenderer::loadLabelMesh() void Scatter3DRenderer::updateTextures() { - //qDebug() << __FUNCTION__; // Drawer has changed; this flag needs to be checked when checking if we need to update labels m_updateLabels = true; } @@ -1462,8 +1454,6 @@ void Scatter3DRenderer::updateAxisRange(Q3DAbstractAxis::AxisOrientation orienta void Scatter3DRenderer::calculateTranslation(ScatterRenderItem &item) { - //qDebug() << __FUNCTION__; - // Origin should be in the center of scene, ie. both positive and negative values are drawn // above background @@ -1487,13 +1477,11 @@ void Scatter3DRenderer::calculateSceneScalingFactors() QRect Scatter3DRenderer::mainViewPort() { - //qDebug() << __FUNCTION__; return m_mainViewPort; } void Scatter3DRenderer::initShaders(const QString &vertexShader, const QString &fragmentShader) { - //qDebug() << __FUNCTION__; if (m_dotShader) delete m_dotShader; m_dotShader = new ShaderHelper(this, vertexShader, fragmentShader); @@ -1502,7 +1490,6 @@ void Scatter3DRenderer::initShaders(const QString &vertexShader, const QString & void Scatter3DRenderer::initSelectionShader() { - //qDebug() << __FUNCTION__; if (m_selectionShader) delete m_selectionShader; m_selectionShader = new ShaderHelper(this, QStringLiteral(":/shaders/vertexSelection"), @@ -1512,7 +1499,6 @@ void Scatter3DRenderer::initSelectionShader() void Scatter3DRenderer::initSelectionBuffer() { - //qDebug() << __FUNCTION__; if (m_selectionTexture) m_textureHelper->deleteTexture(&m_selectionTexture); @@ -1524,7 +1510,6 @@ void Scatter3DRenderer::initSelectionBuffer() #if !defined(QT_OPENGL_ES_2) void Scatter3DRenderer::initDepthShader() { - //qDebug() << __FUNCTION__; if (m_depthShader) delete m_depthShader; m_depthShader = new ShaderHelper(this, QStringLiteral(":/shaders/vertexDepth"), @@ -1587,7 +1572,6 @@ void Scatter3DRenderer::updateDepthBuffer() void Scatter3DRenderer::initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader) { - //qDebug() << __FUNCTION__; if (m_backgroundShader) delete m_backgroundShader; m_backgroundShader = new ShaderHelper(this, vertexShader, fragmentShader); @@ -1596,7 +1580,6 @@ void Scatter3DRenderer::initBackgroundShaders(const QString &vertexShader, void Scatter3DRenderer::initLabelShaders(const QString &vertexShader, const QString &fragmentShader) { - //qDebug() << __FUNCTION__; if (m_labelShader) delete m_labelShader; m_labelShader = new ShaderHelper(this, vertexShader, fragmentShader); diff --git a/src/datavis3d/engine/surface3drenderer.cpp b/src/datavis3d/engine/surface3drenderer.cpp index c8b15309..43d307ae 100644 --- a/src/datavis3d/engine/surface3drenderer.cpp +++ b/src/datavis3d/engine/surface3drenderer.cpp @@ -111,7 +111,6 @@ Surface3DRenderer::Surface3DRenderer(Surface3DController *controller) Surface3DRenderer::~Surface3DRenderer() { - qDebug() << __FUNCTION__; m_textureHelper->glDeleteFramebuffers(1, &m_depthFrameBuffer); m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer); m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer); @@ -126,10 +125,12 @@ Surface3DRenderer::~Surface3DRenderer() delete m_selectionShader; delete m_surfaceShader; delete m_surfaceGridShader; + delete m_labelShader; delete m_backgroundObj; delete m_surfaceObj; delete m_gridLineObj; + delete m_labelObj; if (m_selectionPointer) delete m_selectionPointer; @@ -958,7 +959,7 @@ void Surface3DRenderer::updateSelectionTexture() m_selectionTexture = m_textureHelper->create2DTexture(bits, idImageWidth, idImageHeight); // Release the temp bits allocation - delete bits; + delete[] bits; } void Surface3DRenderer::initSelectionBuffer() @@ -1187,7 +1188,6 @@ void Surface3DRenderer::updateShadowQuality(QDataVis::ShadowQuality quality) void Surface3DRenderer::loadLabelMesh() { - //qDebug() << __FUNCTION__; if (m_labelObj) delete m_labelObj; m_labelObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/label")); @@ -1242,7 +1242,6 @@ void Surface3DRenderer::initSurfaceShaders() void Surface3DRenderer::initLabelShaders(const QString &vertexShader, const QString &fragmentShader) { - //qDebug() << __FUNCTION__; if (m_labelShader) delete m_labelShader; m_labelShader = new ShaderHelper(this, vertexShader, fragmentShader); diff --git a/src/datavis3d/utils/surfaceobject.cpp b/src/datavis3d/utils/surfaceobject.cpp index 4c05c442..b985bec0 100644 --- a/src/datavis3d/utils/surfaceobject.cpp +++ b/src/datavis3d/utils/surfaceobject.cpp @@ -122,10 +122,8 @@ void SurfaceObject::setUpSmoothData(QList<qreal> series, int columns, int rows, createBuffers(vertices, uvs, normals, indices, gridIndices, changeGeometry); - if (indices) - delete indices; - if (gridIndices) - delete gridIndices; + delete[] indices; + delete[] gridIndices; } @@ -216,13 +214,10 @@ void SurfaceObject::setUpData(QList<qreal> series, int columns, int rows, GLfloa createBuffers(vertices, uvs, normals, indices, gridIndices, changeGeometry); - if (indices) - delete indices; - if (gridIndices) - delete gridIndices; + delete[] indices; + delete[] gridIndices; } - void SurfaceObject::createBuffers(const QVector<QVector3D> &vertices, const QVector<QVector2D> &uvs, const QVector<QVector3D> &normals, const GLint *indices, const GLint *gridIndices, bool changeGeometry) |