Tiny fix for memory allocation/deallocation mismatch

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@722 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
SiyangXie@gmail.com 2010-11-01 22:10:10 +00:00
parent a8c1c466a1
commit 3382d1e0a6
3 changed files with 7 additions and 1 deletions

View File

@ -60,6 +60,8 @@ class SourceLineResolverBase : public SourceLineResolverInterface {
// Read the symbol_data from a file with given file_name. // Read the symbol_data from a file with given file_name.
// The part of code was originally in BasicSourceLineResolver::Module's // The part of code was originally in BasicSourceLineResolver::Module's
// LoadMap() method. // LoadMap() method.
// Place dynamically allocated heap buffer in symbol_data. Caller has the
// ownership of the buffer, and should call delete [] to free the buffer.
static bool ReadSymbolFile(char **symbol_data, const string &file_name); static bool ReadSymbolFile(char **symbol_data, const string &file_name);
protected: protected:

View File

@ -464,7 +464,7 @@ TEST_F(TestFastSourceLineResolver, CompareModule) {
ASSERT_TRUE(SourceLineResolverBase::ReadSymbolFile( ASSERT_TRUE(SourceLineResolverBase::ReadSymbolFile(
&symbol_data, symbol_file(module_index))); &symbol_data, symbol_file(module_index)));
symbol_data_string = symbol_data; symbol_data_string = symbol_data;
delete symbol_data; delete [] symbol_data;
ASSERT_TRUE(module_comparer.Compare(symbol_data_string)); ASSERT_TRUE(module_comparer.Compare(symbol_data_string));
} }
} }

View File

@ -70,10 +70,14 @@ class ModuleSerializer {
// Serializes a loaded Module object into a chunk of memory data and returns // Serializes a loaded Module object into a chunk of memory data and returns
// the address of memory chunk. If size != NULL, *size is set to the memory // the address of memory chunk. If size != NULL, *size is set to the memory
// size allocated for the serialized data. // size allocated for the serialized data.
// Caller takes the ownership of the memory chunk (allocated on heap), and
// should call delete instead of delete [] to free it.
char* Serialize(const BasicSourceLineResolver::Module &module, char* Serialize(const BasicSourceLineResolver::Module &module,
unsigned int *size = NULL); unsigned int *size = NULL);
// Given the string format symbol_data, produces a chunk of serialized data. // Given the string format symbol_data, produces a chunk of serialized data.
// Caller takes ownership of the serialized data (on heap), and should call
// delete instead of delete [] to free it.
char* SerializeSymbolFileData(const string &symbol_data, char* SerializeSymbolFileData(const string &symbol_data,
unsigned int *size = NULL); unsigned int *size = NULL);