From 39315e05a8431d59581889f058fab2fb366d338e Mon Sep 17 00:00:00 2001 From: Timothy Nikkel Date: Mon, 20 Oct 2025 07:45:32 +0000 Subject: [PATCH] Bug 1991458. a=pascalc Original Revision: https://phabricator.services.mozilla.com/D267389 Differential Revision: https://phabricator.services.mozilla.com/D268695 --- gfx/thebes/gfxPlatform.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp index bd17eb8338a4..c779e226af3a 100644 --- a/gfx/thebes/gfxPlatform.cpp +++ b/gfx/thebes/gfxPlatform.cpp @@ -198,7 +198,9 @@ class CrashStatsLogForwarder : public mozilla::gfx::LogForwarder { private: // Helper for the Log() - void UpdateCrashReport(); + void UpdateCrashReport(const MutexAutoLock& aProofOfLock); + bool UpdateStringsVectorInternal(const std::string& aString, + const MutexAutoLock& aProofOfLock); private: LoggingRecord mBuffer; @@ -227,6 +229,12 @@ LoggingRecord CrashStatsLogForwarder::LoggingRecordCopy() { } bool CrashStatsLogForwarder::UpdateStringsVector(const std::string& aString) { + MutexAutoLock lock(mMutex); + return UpdateStringsVectorInternal(aString, lock); +} + +bool CrashStatsLogForwarder::UpdateStringsVectorInternal( + const std::string& aString, const MutexAutoLock& aProofOfLock) { // We want at least the first one and the last one. Otherwise, no point. if (mMaxCapacity < 2) { return false; @@ -254,7 +262,8 @@ bool CrashStatsLogForwarder::UpdateStringsVector(const std::string& aString) { return true; } -void CrashStatsLogForwarder::UpdateCrashReport() { +void CrashStatsLogForwarder::UpdateCrashReport( + const MutexAutoLock& aProofOfLock) { std::stringstream message; std::string logAnnotation; @@ -321,8 +330,8 @@ void CrashStatsLogForwarder::Log(const std::string& aString) { PROFILER_MARKER_TEXT("gfx::CriticalError", GRAPHICS, {}, nsDependentCString(aString.c_str())); - if (UpdateStringsVector(aString)) { - UpdateCrashReport(); + if (UpdateStringsVectorInternal(aString, lock)) { + UpdateCrashReport(lock); } // Add it to the parent strings