diff options
author | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-11 05:20:15 +0000 |
---|---|---|
committer | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-11 05:20:15 +0000 |
commit | 9fc572a72cc38a795a3f6b3c6aacd711c4d3fe4e (patch) | |
tree | b49c0a502b0f8af4a0595a2486a5fe693fbe7760 | |
parent | c2c88aa39261dd536d74de77ba924d9d1b7a49dd (diff) | |
download | chromium_src-9fc572a72cc38a795a3f6b3c6aacd711c4d3fe4e.zip chromium_src-9fc572a72cc38a795a3f6b3c6aacd711c4d3fe4e.tar.gz chromium_src-9fc572a72cc38a795a3f6b3c6aacd711c4d3fe4e.tar.bz2 |
gdata: Fix a leak from GDataEntry::FromProtoString()
The leakage ocurrred on failure.
BUG=136597
TEST=tools/valgrind/valgrind.sh --leak-check=full out/Release/unit_tests --gtest_filter=GDataDBTest.*
Review URL: https://chromiumcodereview.appspot.com/10735040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146058 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/gdata/gdata_files.cc | 8 | ||||
-rw-r--r-- | tools/valgrind/memcheck/suppressions.txt | 10 |
2 files changed, 4 insertions, 14 deletions
diff --git a/chrome/browser/chromeos/gdata/gdata_files.cc b/chrome/browser/chromeos/gdata/gdata_files.cc index efe657c..e188d11 100644 --- a/chrome/browser/chromeos/gdata/gdata_files.cc +++ b/chrome/browser/chromeos/gdata/gdata_files.cc @@ -734,20 +734,20 @@ scoped_ptr<GDataEntry> GDataEntry::FromProtoString( GDataDirectoryProto dir_proto; bool ok = dir_proto.ParseFromString(serialized_proto); if (ok && dir_proto.gdata_entry().file_info().is_directory()) { - GDataDirectory* dir = new GDataDirectory(NULL, NULL); + scoped_ptr<GDataDirectory> dir(new GDataDirectory(NULL, NULL)); if (!dir->FromProto(dir_proto)) return scoped_ptr<GDataEntry>(NULL); - return scoped_ptr<GDataEntry>(dir); + return scoped_ptr<GDataEntry>(dir.release()); } GDataFileProto file_proto; ok = file_proto.ParseFromString(serialized_proto); if (ok) { DCHECK(!file_proto.gdata_entry().file_info().is_directory()); - GDataFile* file = new GDataFile(NULL, NULL); + scoped_ptr<GDataFile> file(new GDataFile(NULL, NULL)); if (!file->FromProto(file_proto)) return scoped_ptr<GDataEntry>(NULL); - return scoped_ptr<GDataEntry>(file); + return scoped_ptr<GDataEntry>(file.release()); } return scoped_ptr<GDataEntry>(NULL); } diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt index f522ecd..5d6af02 100644 --- a/tools/valgrind/memcheck/suppressions.txt +++ b/tools/valgrind/memcheck/suppressions.txt @@ -5550,16 +5550,6 @@ fun:_ZN16RenderThreadImplC1ERKSs fun:_ZN21WebRTCAudioDeviceTest5SetUpEv } -{ - bug_chromium_os_32464 - Memcheck:Leak - fun:_Znw* - fun:_ZN5gdata10GDataEntry15FromProtoStringERKSs - fun:_ZN5gdata12GDataLevelDB15GetByResourceIdERKSsP10scoped_ptrINS_10GDataEntryEE - ... - fun:_ZN5gdata12_GLOBAL__N_111* - fun:_ZN5gdata38GDataDBTest_IncompatibleProtoTest_Test8TestBodyEv -} #----------------------------------------------------------------------- |