diff --git a/src/plugins/glsleditor/glsleditor.cpp b/src/plugins/glsleditor/glsleditor.cpp index aa14a53fcf8..b71b5f5a7a5 100644 --- a/src/plugins/glsleditor/glsleditor.cpp +++ b/src/plugins/glsleditor/glsleditor.cpp @@ -214,13 +214,12 @@ void GlslEditorWidget::updateDocumentNow() const QByteArray preprocessedCode = contents.toLatin1(); // ### use the QtCreator C++ preprocessor. Document::Ptr doc(new Document()); - Engine engine; doc->_engine = new Engine(); Parser parser(doc->_engine, preprocessedCode.constData(), preprocessedCode.size(), variant); TranslationUnitAST *ast = parser.parse(); if (ast != 0 || extraSelections(CodeWarningsSelection).isEmpty()) { Semantic sem; - Scope *globalScope = engine.newNamespace(); + Scope *globalScope = new Namespace(); doc->_globalScope = globalScope; const GlslEditorPlugin::InitFile *file = GlslEditorPlugin::shaderInit(variant); sem.translationUnit(file->ast, globalScope, file->engine); @@ -232,7 +231,7 @@ void GlslEditorWidget::updateDocumentNow() file = GlslEditorPlugin::fragmentShaderInit(variant); sem.translationUnit(file->ast, globalScope, file->engine); } - sem.translationUnit(ast, globalScope, &engine); + sem.translationUnit(ast, globalScope, doc->_engine); CreateRanges createRanges(document(), doc); createRanges(ast); @@ -248,7 +247,7 @@ void GlslEditorWidget::updateDocumentNow() QList sels; QSet errors; - foreach (const DiagnosticMessage &m, engine.diagnosticMessages()) { + foreach (const DiagnosticMessage &m, doc->_engine->diagnosticMessages()) { if (! m.line()) continue; else if (errors.contains(m.line()))