diff options
| author | Alexey Samsonov <samsonov@google.com> | 2013-06-28 15:08:29 +0000 | 
|---|---|---|
| committer | Alexey Samsonov <samsonov@google.com> | 2013-06-28 15:08:29 +0000 | 
| commit | fe3a5d9cf557d1a6117db895bda0dcb590b8bfa1 (patch) | |
| tree | e9acb37be1b56146a3870082370bbc01649fccd7 /llvm/tools | |
| parent | 6672004c47f3d3c3ee60f3a7636741de085a78b2 (diff) | |
| download | bcm5719-llvm-fe3a5d9cf557d1a6117db895bda0dcb590b8bfa1.tar.gz bcm5719-llvm-fe3a5d9cf557d1a6117db895bda0dcb590b8bfa1.zip  | |
llvm-symbolizer: don't leave dangling pointers after flushing LLVMSymbolizer. Add a destructor.
llvm-svn: 185154
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp | 2 | ||||
| -rw-r--r-- | llvm/tools/llvm-symbolizer/LLVMSymbolize.h | 3 | 
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp b/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp index 59564161b4e..57f34c24729 100644 --- a/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp +++ b/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp @@ -202,6 +202,8 @@ std::string LLVMSymbolizer::symbolizeData(const std::string &ModuleName,  void LLVMSymbolizer::flush() {    DeleteContainerSeconds(Modules);    DeleteContainerPointers(ParsedBinariesAndObjects); +  BinaryForPath.clear(); +  ObjectFileForArch.clear();  }  static std::string getDarwinDWARFResourceForPath(const std::string &Path) { diff --git a/llvm/tools/llvm-symbolizer/LLVMSymbolize.h b/llvm/tools/llvm-symbolizer/LLVMSymbolize.h index d1f2285aa8a..03c765cc9c3 100644 --- a/llvm/tools/llvm-symbolizer/LLVMSymbolize.h +++ b/llvm/tools/llvm-symbolizer/LLVMSymbolize.h @@ -48,6 +48,9 @@ public:    };    LLVMSymbolizer(const Options &Opts = Options()) : Opts(Opts) {} +  ~LLVMSymbolizer() { +    flush(); +  }    // Returns the result of symbolization for module name/offset as    // a string (possibly containing newlines).  | 

