# # # patch "guitone/src/model/Attributes.cpp" # from [0da408824632f47c768141b0f7e5db248841497f] # to [0c2d183d2e70a6b146b66477ec80e90fdfbd8674] # # patch "guitone/src/model/Certs.cpp" # from [9f20b724cfd368645c3247179ddbb45e92b52d92] # to [834e23dbe80ac792f2f50550e770cf922f88c208] # # patch "guitone/src/model/ContentDiff.cpp" # from [3966a4c4626f4e44043f1cefd986b3b8f03bd498] # to [4cb868e9bf2d592db68a2988e25100cfb961a40e] # # patch "guitone/src/model/ContentDiff.h" # from [13f4ea0429e2338a24ec82e399cb8109eeaec9bb] # to [86560fd61cbd407660df9eb1db3344654d7a24c0] # # patch "guitone/src/model/Keys.cpp" # from [241a769a48a54ea197b510c6daddd6018ea0c2a9] # to [9b85862fecee28770b89e2d878c3d8905b10ae9a] # # patch "guitone/src/model/Manifest.cpp" # from [29f4f726bc764ad968128dd866e6a3b01ee56885] # to [7ebb819d474efd7958d008aa479bbcf940b6d1b3] # # patch "guitone/src/model/Manifest.h" # from [39232d1c5755d4d3a689b8710e45f6023ebe36c7] # to [2b26676773193ef4ee19ab4d9c42c53a8d1a4ad5] # # patch "guitone/src/model/Tags.cpp" # from [c724e650d4089c17216ce616704f2b44a931c72a] # to [64b8da12caf7648865d97ba4d401acf882f6bc10] # # patch "guitone/src/monotone/Monotone.cpp" # from [51c80a76735ebc7f9746fd90bc963ddb09ed5cc0] # to [67695c80ab3235132e5ef09938b17ff9f9c41dc1] # # patch "guitone/src/util/DiffParser.cpp" # from [a09081b923aaf1ae58f875ab85fa209920f68ace] # to [9ae72b02eea243a234cc236b83ff0502cfadaa46] # # patch "guitone/src/util/DiffParser.h" # from [09789d447ec53f675c232ca068d8e01808dcee3c] # to [a78d2d8db7ea0476d1ead3eae0d1f5cea96f19cc] # ============================================================ --- guitone/src/model/Attributes.cpp 0da408824632f47c768141b0f7e5db248841497f +++ guitone/src/model/Attributes.cpp 0c2d183d2e70a6b146b66477ec80e90fdfbd8674 @@ -72,8 +72,8 @@ void Attributes::parseOutput() void Attributes::parseOutput() { - StanzaParser* parser = new StanzaParser(AutomateCommand::data); - StanzaList list = parser->getStanzas(); + StanzaParser parser(AutomateCommand::data); + StanzaList list = parser.getStanzas(); for (int i=0, size = list.size(); i < size; ++i) { ============================================================ --- guitone/src/model/Certs.cpp 9f20b724cfd368645c3247179ddbb45e92b52d92 +++ guitone/src/model/Certs.cpp 834e23dbe80ac792f2f50550e770cf922f88c208 @@ -53,8 +53,8 @@ void Certs::parseOutput() void Certs::parseOutput() { - StanzaParser* parser = new StanzaParser(AutomateCommand::data); - StanzaList list = parser->getStanzas(); + StanzaParser parser(AutomateCommand::data); + StanzaList list = parser.getStanzas(); for (int i=0, size = list.size(); i < size; ++i) { ============================================================ --- guitone/src/model/ContentDiff.cpp 3966a4c4626f4e44043f1cefd986b3b8f03bd498 +++ guitone/src/model/ContentDiff.cpp 4cb868e9bf2d592db68a2988e25100cfb961a40e @@ -34,6 +34,8 @@ ContentDiff::~ContentDiff() ContentDiff::~ContentDiff() { if (diffParser) delete diffParser; + foreach(ListLine *it, lines) + delete it; delete mtnDelegate; } ============================================================ --- guitone/src/model/ContentDiff.h 13f4ea0429e2338a24ec82e399cb8109eeaec9bb +++ guitone/src/model/ContentDiff.h 86560fd61cbd407660df9eb1db3344654d7a24c0 @@ -46,6 +46,12 @@ struct ListLine { if (type == HunkSep) firstColumn = "..."; } + inline ~ListLine() + { + foreach(ListLine *it, lines) + delete it; + } + void addChild(ListLine * l) { lines.append(l); l->parent = this; } }; ============================================================ --- guitone/src/model/Keys.cpp 241a769a48a54ea197b510c6daddd6018ea0c2a9 +++ guitone/src/model/Keys.cpp 9b85862fecee28770b89e2d878c3d8905b10ae9a @@ -48,8 +48,8 @@ void Keys::parseOutput() void Keys::parseOutput() { - StanzaParser* parser = new StanzaParser(AutomateCommand::data); - StanzaList list = parser->getStanzas(); + StanzaParser parser(AutomateCommand::data); + StanzaList list = parser.getStanzas(); Key * key; for (int i=0, size = list.size(); i < size; ++i) ============================================================ --- guitone/src/model/Manifest.cpp 29f4f726bc764ad968128dd866e6a3b01ee56885 +++ guitone/src/model/Manifest.cpp 7ebb819d474efd7958d008aa479bbcf940b6d1b3 @@ -29,6 +29,7 @@ Manifest::~Manifest() Manifest::~Manifest() { + delete root; delete mtnDelegate; } @@ -45,8 +46,8 @@ void Manifest::parseOutput() void Manifest::parseOutput() { - StanzaParser* parser = new StanzaParser(AutomateCommand::data); - StanzaList list = parser->getStanzas(); + StanzaParser parser(AutomateCommand::data); + StanzaList list = parser.getStanzas(); QMap directoryMap; @@ -131,7 +132,6 @@ void Manifest::parseOutput() // reset any connected view(s) reset(); - emit manifestRead(); } ============================================================ --- guitone/src/model/Manifest.h 39232d1c5755d4d3a689b8710e45f6023ebe36c7 +++ guitone/src/model/Manifest.h 2b26676773193ef4ee19ab4d9c42c53a8d1a4ad5 @@ -38,7 +38,12 @@ struct ManifestEntry bool is_directory; QMap attributes; - ManifestEntry() : parent(NULL), path(""), hash(""), is_directory(true) {} + inline ManifestEntry() : parent(NULL), path(""), hash(""), is_directory(true) {} + inline ~ManifestEntry() + { + foreach(ManifestEntry *it, children) + delete it; + } inline QString filename() { ============================================================ --- guitone/src/model/Tags.cpp c724e650d4089c17216ce616704f2b44a931c72a +++ guitone/src/model/Tags.cpp 64b8da12caf7648865d97ba4d401acf882f6bc10 @@ -51,8 +51,8 @@ void Tags::parseOutput() { tags->clear(); - StanzaParser* parser = new StanzaParser(AutomateCommand::data); - StanzaList list = parser->getStanzas(); + StanzaParser parser(AutomateCommand::data); + StanzaList list = parser.getStanzas(); for (int i=0, size = list.size(); i < size; ++i) { ============================================================ --- guitone/src/monotone/Monotone.cpp 51c80a76735ebc7f9746fd90bc963ddb09ed5cc0 +++ guitone/src/monotone/Monotone.cpp 67695c80ab3235132e5ef09938b17ff9f9c41dc1 @@ -472,7 +472,8 @@ void Monotone::readAndParseStdout() } // if this was not the last output, we need to wait for more data - qWarning("Monotone::readAndParseStdout: Contents incomplete."); + // FIXME: this is wrong. There is no return in front of this code ATM. + //qWarning("Monotone::readAndParseStdout: Contents incomplete."); return; } ============================================================ --- guitone/src/util/DiffParser.cpp a09081b923aaf1ae58f875ab85fa209920f68ace +++ guitone/src/util/DiffParser.cpp 9ae72b02eea243a234cc236b83ff0502cfadaa46 @@ -28,7 +28,11 @@ DiffParser::DiffParser(const QString & i parse(input); } -DiffParser::~DiffParser() {} +DiffParser::~DiffParser() +{ + foreach(Diff *it, fileDiffs.values()) + delete it; +} void DiffParser::parse(const QString & input) { ============================================================ --- guitone/src/util/DiffParser.h 09789d447ec53f675c232ca068d8e01808dcee3c +++ guitone/src/util/DiffParser.h a78d2d8db7ea0476d1ead3eae0d1f5cea96f19cc @@ -37,6 +37,11 @@ struct DiffHunk struct DiffHunk { QList lines; + inline ~DiffHunk() + { + foreach(DiffLine *it, lines) + delete it; + } int leftStart; int leftCount; int rightStart; @@ -46,6 +51,11 @@ struct Diff struct Diff { QList hunks; + inline ~Diff() + { + foreach(DiffHunk *it, hunks) + delete it; + } bool is_binary; };