diff options
author | SiyangXie@gmail.com <SiyangXie@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-11-01 17:31:31 +0000 |
---|---|---|
committer | SiyangXie@gmail.com <SiyangXie@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-11-01 17:31:31 +0000 |
commit | a8c1c466a16ad4c85bfd1ca20ab8fc056d669abe (patch) | |
tree | a2125b96e08b34b828364885d9cd52845a1eff93 /src/google_breakpad/processor/source_line_resolver_interface.h | |
parent | Add missing module_serializer.h and module_serializer.cc for class ModuleSeri... (diff) | |
download | breakpad-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/google_breakpad/processor/source_line_resolver_interface.h')
-rw-r--r-- | src/google_breakpad/processor/source_line_resolver_interface.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/google_breakpad/processor/source_line_resolver_interface.h b/src/google_breakpad/processor/source_line_resolver_interface.h index bd6a12d6..103f979e 100644 --- a/src/google_breakpad/processor/source_line_resolver_interface.h +++ b/src/google_breakpad/processor/source_line_resolver_interface.h @@ -67,9 +67,15 @@ class SourceLineResolverInterface { // Add an interface to load symbol using C-String data insteading string. // This is useful in the optimization design for avoiding unnecessary copying // of symbol data, in order to improve memory efficiency. + // LoadModuleUsingMemoryBuffer() does NOT take ownership of memory_buffer. virtual bool LoadModuleUsingMemoryBuffer(const CodeModule *module, char *memory_buffer) = 0; + // Return true if the memory buffer should be deleted immediately after + // LoadModuleUsingMemoryBuffer(). Return false if the memory buffer has to be + // alive during the lifetime of the corresponding Module. + virtual bool ShouldDeleteMemoryBufferAfterLoadModule() = 0; + // Request that the specified module be unloaded from this resolver. // A resolver may choose to ignore such a request. virtual void UnloadModule(const CodeModule *module) = 0; @@ -79,7 +85,7 @@ class SourceLineResolverInterface { // Fills in the function_base, function_name, source_file_name, // and source_line fields of the StackFrame. The instruction and - // module_name fields must already be filled in. + // module_name fields must already be filled in. virtual void FillSourceLineInfo(StackFrame *frame) = 0; // If Windows stack walking information is available covering @@ -87,7 +93,7 @@ class SourceLineResolverInterface { // describing it. If the information is not available, returns NULL. // A NULL return value does not indicate an error. The caller takes // ownership of any returned WindowsFrameInfo object. - virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) = 0; + virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) = 0; // If CFI stack walking information is available covering ADDRESS, // return a CFIFrameInfo structure describing it. If the information |