summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2012-02-08 04:32:27 +0000
committerTed Kremenek <kremenek@apple.com>2012-02-08 04:32:27 +0000
commit3116c4e5cdfa26ff9e3c73d3732b72c48f97096e (patch)
tree90f69e8d0a4d7b531f600202a7ab2353d2ff3c3e
parentc03bdd9c803b12a90a717e35983f838208b533f2 (diff)
downloadbcm5719-llvm-3116c4e5cdfa26ff9e3c73d3732b72c48f97096e.tar.gz
bcm5719-llvm-3116c4e5cdfa26ff9e3c73d3732b72c48f97096e.zip
Refactor pieces of PathDiagnostic into its own data structure. No functionality change.
llvm-svn: 150053
-rw-r--r--clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h8
-rw-r--r--clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp6
2 files changed, 11 insertions, 3 deletions
diff --git a/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h b/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
index 9516fcea83c..08b48e529bb 100644
--- a/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
+++ b/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
@@ -44,6 +44,12 @@ class ExplodedNode;
//===----------------------------------------------------------------------===//
class PathDiagnostic;
+class PathDiagnosticPiece;
+
+class PathPieces : public std::deque<PathDiagnosticPiece *> {
+public:
+ ~PathPieces();
+};
class PathDiagnosticConsumer {
virtual void anchor();
@@ -475,7 +481,7 @@ public:
/// diagnostic. It represents an ordered-collection of PathDiagnosticPieces,
/// each which represent the pieces of the path.
class PathDiagnostic : public llvm::FoldingSetNode {
- std::deque<PathDiagnosticPiece*> path;
+ PathPieces path;
unsigned Size;
std::string BugType;
std::string Desc;
diff --git a/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp b/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
index 0d2c2e82d97..bdf2e16a4be 100644
--- a/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
+++ b/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
@@ -62,10 +62,12 @@ PathDiagnosticMacroPiece::~PathDiagnosticMacroPiece() {
PathDiagnostic::PathDiagnostic() : Size(0) {}
-PathDiagnostic::~PathDiagnostic() {
- for (iterator I = begin(), E = end(); I != E; ++I) delete &*I;
+PathPieces::~PathPieces() {
+ for (iterator I = begin(), E = end(); I != E; ++I) delete *I;
}
+PathDiagnostic::~PathDiagnostic() {}
+
void PathDiagnostic::resetPath(bool deletePieces) {
Size = 0;
OpenPOWER on IntegriCloud