bug 950268 - fix leak in nsCertTree::GetDispInfoAtIndex r=cviecco

This commit is contained in:
David Keeler 2014-01-09 10:02:08 -08:00
parent b53a33f789
commit 02ba1423d9
3 changed files with 28 additions and 3 deletions

View File

@ -313,9 +313,7 @@ nsCertTree::GetDispInfoAtIndex(int32_t index,
RefPtr<nsCertTreeDispInfo> certdi(mDispInfo.SafeElementAt(certIndex,
nullptr));
if (certdi) {
nsCertTreeDispInfo *raw = certdi.get();
NS_IF_ADDREF(raw);
return raw;
return certdi.forget();
}
break;
}

View File

@ -2,3 +2,4 @@
support-files = head.js
[browser_bug627234_perwindowpb.js]
[browser_certificateManagerLeak.js]

View File

@ -0,0 +1,26 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
let gBugWindow;
function onLoad() {
gBugWindow.removeEventListener("load", onLoad);
gBugWindow.addEventListener("unload", onUnload);
gBugWindow.close();
}
function onUnload() {
gBugWindow.removeEventListener("unload", onUnload);
window.focus();
finish();
}
// This test opens and then closes the certificate manager to test that it
// does not leak. The test harness keeps track of and reports leaks, so
// there are no actual checks here.
function test() {
waitForExplicitFinish();
gBugWindow = window.openDialog("chrome://pippki/content/certManager.xul");
gBugWindow.addEventListener("load", onLoad);
}