summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeikkinen Miikka <miikka.heikkinen@digia.com>2013-09-05 11:56:47 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-05 12:33:32 +0300
commit8f1ad0ed8c88927fb44350de477200cf09c231fb (patch)
treeb2ec3b65f4f3deb12ddf11aecd9e65ab46b7eecb
parent263f8a781050512382909c5173373a4ced21ae60 (diff)
Fixing more Valgrind found problems
Change-Id: I11023faee65f7a660d63986bd2f7211fcd90964a Reviewed-by: Mika Salmela <mika.salmela@digia.com>
-rw-r--r--src/datavis3d/data/qitemmodelbardataproxy.cpp1
-rw-r--r--src/datavis3d/data/qitemmodelscatterdataproxy.cpp1
-rw-r--r--src/datavis3d/engine/abstract3dcontroller.cpp7
-rw-r--r--src/datavis3d/engine/abstract3drenderer.cpp2
-rw-r--r--src/datavis3d/engine/scatter3drenderer.cpp21
-rw-r--r--src/datavis3d/engine/surface3drenderer.cpp7
-rw-r--r--src/datavis3d/utils/surfaceobject.cpp13
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)