aboutsummaryrefslogtreecommitdiff
path: root/src/processor/simple_symbol_supplier.h
diff options
context:
space:
mode:
authorSiyangXie@gmail.com <SiyangXie@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-11-01 17:31:31 +0000
committerSiyangXie@gmail.com <SiyangXie@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-11-01 17:31:31 +0000
commita8c1c466a16ad4c85bfd1ca20ab8fc056d669abe (patch)
treea2125b96e08b34b828364885d9cd52845a1eff93 /src/processor/simple_symbol_supplier.h
parentAdd missing module_serializer.h and module_serializer.cc for class ModuleSeri... (diff)
downloadbreakpad-a8c1c466a16ad4c85bfd1ca20ab8fc056d669abe.tar.xz
Restrict ownership of symbol data buffers to symbol supplier.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@721 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/simple_symbol_supplier.h')
-rw-r--r--src/processor/simple_symbol_supplier.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/processor/simple_symbol_supplier.h b/src/processor/simple_symbol_supplier.h
index 753bd0cd..e1c16195 100644
--- a/src/processor/simple_symbol_supplier.h
+++ b/src/processor/simple_symbol_supplier.h
@@ -76,6 +76,7 @@
#ifndef PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
#define PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
+#include <map>
#include <string>
#include <vector>
@@ -83,6 +84,7 @@
namespace google_breakpad {
+using std::map;
using std::string;
using std::vector;
@@ -111,11 +113,16 @@ class SimpleSymbolSupplier : public SymbolSupplier {
string *symbol_file,
string *symbol_data);
+ // Allocates data buffer on heap and writes symbol data into buffer.
+ // Symbol supplier ALWAYS takes ownership of the data buffer.
virtual SymbolResult GetCStringSymbolData(const CodeModule *module,
const SystemInfo *system_info,
string *symbol_file,
char **symbol_data);
+ // Free the data buffer allocated in the above GetCStringSymbolData();
+ virtual void FreeSymbolData(const CodeModule *module);
+
protected:
SymbolResult GetSymbolFileAtPathFromRoot(const CodeModule *module,
const SystemInfo *system_info,
@@ -123,6 +130,7 @@ class SimpleSymbolSupplier : public SymbolSupplier {
string *symbol_file);
private:
+ map<string, char *> memory_buffers_;
vector<string> paths_;
};