Fix a memory leak in DwarfCUToModule::FuncHandler::Finish().

BUG=591
R=mark@chromium.org

Review URL: https://breakpad.appspot.com/2704002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1333 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
thestig@chromium.org 2014-05-28 16:51:52 +00:00
parent 5421a942f0
commit 3cef0e5645

View File

@ -531,7 +531,7 @@ void DwarfCUToModule::FuncHandler::Finish() {
if (low_pc_ < high_pc_) { if (low_pc_ < high_pc_) {
// Create a Module::Function based on the data we've gathered, and // Create a Module::Function based on the data we've gathered, and
// add it to the functions_ list. // add it to the functions_ list.
Module::Function *func = new Module::Function; scoped_ptr<Module::Function> func(new Module::Function);
// Malformed DWARF may omit the name, but all Module::Functions must // Malformed DWARF may omit the name, but all Module::Functions must
// have names. // have names.
if (!name_.empty()) { if (!name_.empty()) {
@ -546,7 +546,7 @@ void DwarfCUToModule::FuncHandler::Finish() {
if (func->address) { if (func->address) {
// If the function address is zero this is a sign that this function // If the function address is zero this is a sign that this function
// description is just empty debug data and should just be discarded. // description is just empty debug data and should just be discarded.
cu_context_->functions.push_back(func); cu_context_->functions.push_back(func.release());
} }
} else if (inline_) { } else if (inline_) {
AbstractOrigin origin(name_); AbstractOrigin origin(name_);