Skip to content
Snippets Groups Projects
Commit 574d871e authored by Victor Ostashevsky's avatar Victor Ostashevsky Committed by hjk
Browse files

Fix file descriptor and memory leak in autotools plugin


Don't create QFile's on heap when not needed.
Don't forget to delete those which have to created on heap.

Change-Id: I0e23e0d926febbfd464b3ff5d3e29fd46c16cb44
Reviewed-by: default avatarDaniel Teske <daniel.teske@nokia.com>
Reviewed-by: default avatarPeter Penz <peter.penz19@gmail.com>
parent d48027ae
No related branches found
No related tags found
No related merge requests found
......@@ -57,6 +57,11 @@ MakefileParser::MakefileParser(const QString &makefile) :
{
}
MakefileParser::~MakefileParser()
{
delete m_textStream.device();
}
bool MakefileParser::parse()
{
m_mutex.lock();
......@@ -261,11 +266,11 @@ void MakefileParser::parseSubDirs()
+ slash + makefileName;
// Parse sub directory
QFile *file = new QFile(subDirMakefile);
QFile file(subDirMakefile);
// Don't try to parse a file, that might not exist (e. g.
// if SUBDIRS specifies a 'po' directory).
if (!file->exists())
if (!file.exists())
continue;
MakefileParser parser(subDirMakefile);
......@@ -422,15 +427,15 @@ void MakefileParser::parseIncludePaths()
QFileInfo info(m_makefile);
const QString dirName = info.absolutePath();
QFile *file = new QFile(dirName + QLatin1String("/Makefile"));
if (!file->open(QIODevice::ReadOnly | QIODevice::Text))
QFile file(dirName + QLatin1String("/Makefile"));
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
// TODO: The parsing is done very poor. Comments are ignored and targets
// are ignored too. Whether it is worth to improve this, depends on whether
// we want to parse the generated Makefile at all or whether we want to
// improve the Makefile.am parsing to be aware of variables.
QTextStream textStream(file);
QTextStream textStream(&file);
QString line;
do {
line = textStream.readLine();
......
......@@ -65,6 +65,8 @@ public:
*/
MakefileParser(const QString &makefile);
~MakefileParser();
/**
* Parses the makefile. Must be invoked at least once, otherwise
* the getter methods of MakefileParser will return empty values.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment