Commit 24324927 authored by jstritar@chromium.org's avatar jstritar@chromium.org

Fix Manifest leak in Extension::InitFromValue.

Extension::InitFromValue was leaking Manifest objects when returning early from error conditions.

BUG=106331
TEST=existing

Review URL: http://codereview.chromium.org/8805010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113024 0039d316-1c4b-4281-b951-d872f2087c98
parent c54ab233
...@@ -1385,6 +1385,7 @@ bool Extension::InitFromValue(extensions::Manifest* manifest, int flags, ...@@ -1385,6 +1385,7 @@ bool Extension::InitFromValue(extensions::Manifest* manifest, int flags,
std::string* error) { std::string* error) {
DCHECK(error); DCHECK(error);
base::AutoLock auto_lock(runtime_data_lock_); base::AutoLock auto_lock(runtime_data_lock_);
manifest_.reset(manifest);
if (!manifest->ValidateManifest(error)) if (!manifest->ValidateManifest(error))
return false; return false;
...@@ -1446,8 +1447,6 @@ bool Extension::InitFromValue(extensions::Manifest* manifest, int flags, ...@@ -1446,8 +1447,6 @@ bool Extension::InitFromValue(extensions::Manifest* manifest, int flags,
creation_flags_ = flags; creation_flags_ = flags;
manifest_.reset(manifest);
// Initialize the URL. // Initialize the URL.
extension_url_ = Extension::GetBaseURLFromExtensionId(id()); extension_url_ = Extension::GetBaseURLFromExtensionId(id());
......
...@@ -1785,30 +1785,3 @@ ...@@ -1785,30 +1785,3 @@
fun:AccessibilityEventRouterViewsTest::CreateWindowWithContents fun:AccessibilityEventRouterViewsTest::CreateWindowWithContents
fun:AccessibilityEventRouterViewsTest_TestFocusNotification_Test::TestBody fun:AccessibilityEventRouterViewsTest_TestFocusNotification_Test::TestBody
} }
{
bug_106331_a
Heapcheck:Leak
...
fun:Extension::Create
}
{
bug_106331_b
Heapcheck:Leak
...
fun:ExtensionUnpacker::ReadManifest
fun:ExtensionUnpacker::Run
}
{
bug_106331_c
Heapcheck:Leak
...
fun:JSONFileValueSerializer::Deserialize
fun:::FileThreadDeserializer::DoReading
fun:JsonPrefStore::ReadPrefs
fun:PrefService::InitFromStorage
fun:PrefService*
fun:PrefServiceMockBuilder::Create
fun:ExtensionServiceTestBase::InitializeExtensionService
fun:ExtensionServiceTestBase::InitializeInstalledExtensionService
fun:ExtensionServiceTest_UninstallingNotLoadedExtension_Test::TestBody
}
...@@ -5322,12 +5322,6 @@ ...@@ -5322,12 +5322,6 @@
fun:_ZN7WebCoreL21executeInsertFragmentEPNS_5FrameEN3WTF10PassRefPtrINS_16DocumentFragmentEEE fun:_ZN7WebCoreL21executeInsertFragmentEPNS_5FrameEN3WTF10PassRefPtrINS_16DocumentFragmentEEE
fun:_ZN7WebCoreL17executeInsertHTMLEPNS_5FrameEPNS_5EventENS_19EditorCommandSourceERKN3WTF6StringE fun:_ZN7WebCoreL17executeInsertHTMLEPNS_5FrameEPNS_5EventENS_19EditorCommandSourceERKN3WTF6StringE
} }
{
bug_106331
Memcheck:Leak
...
fun:_ZN9Extension6CreateERK8FilePathNS_8LocationERKN4base15DictionaryValueEiPSs
}
{ {
bug_106402 bug_106402
Memcheck:Leak Memcheck:Leak
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment