diff options
| -rw-r--r-- | clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h | 8 | ||||
| -rw-r--r-- | clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp | 6 | 
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;  | 

