From 8fdf56c564b78f24bc4157df7e4480358e66b3e9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sat, 24 Mar 2012 10:06:56 +0000 Subject: [PATCH] Process stderr one line at time. Instead of reading all into memory. Benefit is probably only marginal, but code is equally lean. --- gui/retracer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gui/retracer.cpp b/gui/retracer.cpp index 865f61f..fa22011 100644 --- a/gui/retracer.cpp +++ b/gui/retracer.cpp @@ -255,11 +255,11 @@ void RetraceProcess::replayFinished(int exitCode, QProcess::ExitStatus exitStatu } } - QString errStr = m_process->readAllStandardError(); - QStringList errorLines = errStr.split('\n'); + m_process->setReadChannel(QProcess::StandardError); QList errors; - QRegExp regexp("(^\\d+): +(\\b\\w+\\b): (.+$)"); - foreach(QString line, errorLines) { + QRegExp regexp("(^\\d+): +(\\b\\w+\\b): ([^\\r\\n]+)[\\r\\n]*$"); + while (!m_process->atEnd()) { + QString line = m_process->readLine(); if (regexp.indexIn(line) != -1) { ApiTraceError error; error.callIndex = regexp.cap(1).toInt(); -- 2.45.2