Fix Possible memory leaks

This commit is contained in:
Maxime Gimeno 2018-07-05 14:47:06 +02:00
parent 4c58c214c3
commit 09d7625e67
3 changed files with 23 additions and 24 deletions

View File

@ -375,38 +375,38 @@ void Scene::initializeGL(CGAL::Three::Viewer_interface* viewer)
};
QOpenGLShader *vertex_shader = new QOpenGLShader(QOpenGLShader::Vertex);
QOpenGLShader *fragment_shader= new QOpenGLShader(QOpenGLShader::Fragment);
QOpenGLShader vertex_shader(QOpenGLShader::Vertex);
QOpenGLShader fragment_shader(QOpenGLShader::Fragment);
if(viewer->isOpenGL_4_3())
{
if(!vertex_shader->compileSourceCode(vertex_source))
if(!vertex_shader.compileSourceCode(vertex_source))
{
std::cerr<<"Compiling vertex source FAILED"<<std::endl;
}
if(!fragment_shader->compileSourceCode(fragment_source))
if(!fragment_shader.compileSourceCode(fragment_source))
{
std::cerr<<"Compiling fragmentsource FAILED"<<std::endl;
}
}
else
{
if(!vertex_shader->compileSourceCode(vertex_source_comp))
if(!vertex_shader.compileSourceCode(vertex_source_comp))
{
std::cerr<<"Compiling vertex source FAILED"<<std::endl;
}
if(!fragment_shader->compileSourceCode(fragment_source_comp))
if(!fragment_shader.compileSourceCode(fragment_source_comp))
{
std::cerr<<"Compiling fragmentsource FAILED"<<std::endl;
}
}
if(!program.addShader(vertex_shader))
if(!program.addShader(&vertex_shader))
{
std::cerr<<"adding vertex shader FAILED"<<std::endl;
}
if(!program.addShader(fragment_shader))
if(!program.addShader(&fragment_shader))
{
std::cerr<<"adding fragment shader FAILED"<<std::endl;
}

View File

@ -564,24 +564,24 @@ void Scene_image_item_priv::compile_shaders()
"} \n"
"\n"
};
QOpenGLShader *vertex_shader = new QOpenGLShader(QOpenGLShader::Vertex);
if(!vertex_shader->compileSourceCode(vertex_source))
QOpenGLShader vertex_shader(QOpenGLShader::Vertex);
if(!vertex_shader.compileSourceCode(vertex_source))
{
std::cerr<<"Compiling vertex source FAILED"<<std::endl;
}
QOpenGLShader *fragment_shader= new QOpenGLShader(QOpenGLShader::Fragment);
if(!fragment_shader->compileSourceCode(fragment_source))
QOpenGLShader fragment_shader(QOpenGLShader::Fragment);
if(!fragment_shader.compileSourceCode(fragment_source))
{
std::cerr<<"Compiling fragmentsource FAILED"<<std::endl;
}
if(!rendering_program.addShader(vertex_shader))
if(!rendering_program.addShader(&vertex_shader))
{
std::cerr<<"adding vertex shader FAILED"<<std::endl;
}
if(!rendering_program.addShader(fragment_shader))
if(!rendering_program.addShader(&fragment_shader))
{
std::cerr<<"adding fragment shader FAILED"<<std::endl;
}

View File

@ -250,8 +250,6 @@ void Viewer::init()
setBackgroundColor(::Qt::white);
d->vao.create();
d->buffer.create();
QOpenGLShader *vertex_shader, *fragment_shader;
//setting the program used for the distance
{
@ -298,36 +296,37 @@ void Viewer::init()
"} \n"
"\n"
};
vertex_shader = new QOpenGLShader(QOpenGLShader::Vertex);
fragment_shader= new QOpenGLShader(QOpenGLShader::Fragment);
QOpenGLShader vertex_shader(QOpenGLShader::Vertex);
QOpenGLShader fragment_shader(QOpenGLShader::Fragment);
if(isOpenGL_4_3())
{
if(!vertex_shader->compileSourceCode(vertex_source_dist))
if(!vertex_shader.compileSourceCode(vertex_source_dist))
{
std::cerr<<"Compiling vertex source FAILED"<<std::endl;
}
if(!fragment_shader->compileSourceCode(fragment_source_dist))
if(!fragment_shader.compileSourceCode(fragment_source_dist))
{
std::cerr<<"Compiling fragmentsource FAILED"<<std::endl;
}
}
else
{ if(!vertex_shader->compileSourceCode(vertex_source_comp_dist))
{
if(!vertex_shader.compileSourceCode(vertex_source_comp_dist))
{
std::cerr<<"Compiling vertex source FAILED"<<std::endl;
}
if(!fragment_shader->compileSourceCode(fragment_source_comp_dist))
if(!fragment_shader.compileSourceCode(fragment_source_comp_dist))
{
std::cerr<<"Compiling fragmentsource FAILED"<<std::endl;
}
}
if(!d->rendering_program_dist.addShader(vertex_shader))
if(!d->rendering_program_dist.addShader(&vertex_shader))
{
std::cerr<<"adding vertex shader FAILED"<<std::endl;
}
if(!d->rendering_program_dist.addShader(fragment_shader))
if(!d->rendering_program_dist.addShader(&fragment_shader))
{
std::cerr<<"adding fragment shader FAILED"<<std::endl;
}