# # # patch "guitone/src/util/DiffParser.cpp" # from [ee79215f94252db70870ed6897b16a029b0b7758] # to [37d0e610e8d94592e37fe8a1759ffdfa9f9b65cc] # ============================================================ --- guitone/src/util/DiffParser.cpp ee79215f94252db70870ed6897b16a029b0b7758 +++ guitone/src/util/DiffParser.cpp 37d0e610e8d94592e37fe8a1759ffdfa9f9b65cc @@ -43,8 +43,8 @@ void DiffParser::parse(const QString & i QString curFile; - Diff * curDiff; - DiffHunk * curHunk; + Diff * curDiff = 0; + DiffHunk * curHunk = 0; for (int i=0, s=lines.size(); iis_binary = true; - fileDiffs.insert(rx.cap(1), curDiff); - continue; + curFile = rx.cap(1); } + else + { + // then this should be a normal file diff + rx = QRegExp("^---\\s(.+)\\s+\\w{40}"); + Q_ASSERT(rx.indexIn(nextGroup) > -1); + curFile = rx.cap(1); + } - // then this should be a normal file diff - rx = QRegExp("^---\\s(.+)\\s+\\w{40}"); - Q_ASSERT(rx.indexIn(nextGroup) > -1); - curFile = rx.cap(1); + fileDiffs.insert(curFile, curDiff); - // create a new diff - curDiff = new Diff(); - fileDiffs[curFile] = curDiff; - // skip the next line as we don't care about the content id's here i++; continue; } + Q_ASSERT(curDiff); + // // parse hunk lines, setup new hunk object // @@ -113,6 +117,8 @@ void DiffParser::parse(const QString & i continue; } + Q_ASSERT(curHunk); + DiffLine * diffLine = new DiffLine(); curHunk->lines.push_back(diffLine); diffLine->content = line.mid(1);