From 80e89b23a329453e8dda0f3c48053b8fbe4968c1 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Date: Tue, 24 Feb 2009 22:36:36 +0100
Subject: [PATCH] optimize output receiver somewhat

---
 src/plugins/debugger/gdbengine.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 66d4ce19f42..656ade277f1 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -554,24 +554,29 @@ void GdbEngine::readGdbStandardError()
 
 void GdbEngine::readGdbStandardOutput()
 {
+    int newstart = 0;
+    int scan = m_inbuffer.size();
+
     m_inbuffer.append(m_gdbProc.readAllStandardOutput());
 
-    int newstart = 0;
     while (newstart < m_inbuffer.size()) {
         int start = newstart;
-        int end = m_inbuffer.indexOf('\n', start);
+        int end = m_inbuffer.indexOf('\n', scan);
         if (end < 0) {
             m_inbuffer.remove(0, start);
             return;
         }
         newstart = end + 1;
+        scan = newstart;
         if (end == start)
             continue;
+        #ifdef Q_OS_WIN
         if (m_inbuffer.at(end - 1) == '\r') {
             --end;
             if (end == start)
                 continue;
         }
+        #endif
         handleResponse(QByteArray::fromRawData(m_inbuffer.constData() + start, end - start));
     }
     m_inbuffer.clear();
-- 
GitLab