From 1e51d01858f8cd387cecf1fce7be206178796878 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Sun, 31 Aug 2014 20:36:26 -0700 Subject: [PATCH] Bug 1061024 (part 1) - Don't run DMD when about:memory's "Measure" button is pressed. r=jld. --HG-- extra : rebase_source : ddf0236352c64eb9839dfd0a219451a568aba10e --- dom/ipc/ContentParent.cpp | 20 +++++++++++--------- xpcom/base/nsMemoryReporterManager.cpp | 12 +++++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp index a26f41107b5..8859957daa3 100755 --- a/dom/ipc/ContentParent.cpp +++ b/dom/ipc/ContentParent.cpp @@ -2641,16 +2641,18 @@ ContentParent::Observe(nsISupports* aSubject, MOZ_ASSERT(cmsg[identOffset - 1] == '='); FileDescriptor dmdFileDesc; #ifdef MOZ_DMD - FILE *dmdFile; nsAutoString dmdIdent(Substring(msg, identOffset)); - nsresult rv = nsMemoryInfoDumper::OpenDMDFile(dmdIdent, Pid(), &dmdFile); - if (NS_WARN_IF(NS_FAILED(rv))) { - // Proceed with the memory report as if DMD were disabled. - dmdFile = nullptr; - } - if (dmdFile) { - dmdFileDesc = FILEToFileDescriptor(dmdFile); - fclose(dmdFile); + if (!dmdIdent.IsEmpty()) { + FILE *dmdFile = nullptr; + nsresult rv = nsMemoryInfoDumper::OpenDMDFile(dmdIdent, Pid(), &dmdFile); + if (NS_WARN_IF(NS_FAILED(rv))) { + // Proceed with the memory report as if DMD were disabled. + dmdFile = nullptr; + } + if (dmdFile) { + dmdFileDesc = FILEToFileDescriptor(dmdFile); + fclose(dmdFile); + } } #endif unused << SendPMemoryReportRequestConstructor( diff --git a/xpcom/base/nsMemoryReporterManager.cpp b/xpcom/base/nsMemoryReporterManager.cpp index 8d92b674b4f..215b33f0418 100644 --- a/xpcom/base/nsMemoryReporterManager.cpp +++ b/xpcom/base/nsMemoryReporterManager.cpp @@ -1189,11 +1189,13 @@ nsMemoryReporterManager::StartGettingReports() // Get reports for this process. FILE* parentDMDFile = nullptr; #ifdef MOZ_DMD - nsresult rv = nsMemoryInfoDumper::OpenDMDFile(s->mDMDDumpIdent, getpid(), - &parentDMDFile); - if (NS_WARN_IF(NS_FAILED(rv))) { - // Proceed with the memory report as if DMD were disabled. - parentDMDFile = nullptr; + if (!s->mDMDDumpIdent.IsEmpty()) { + nsresult rv = nsMemoryInfoDumper::OpenDMDFile(s->mDMDDumpIdent, getpid(), + &parentDMDFile); + if (NS_WARN_IF(NS_FAILED(rv))) { + // Proceed with the memory report as if DMD were disabled. + parentDMDFile = nullptr; + } } #endif GetReportsForThisProcessExtended(s->mHandleReport, s->mHandleReportData,