[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - comphelper/source include/comphelper
Gopi Krishna Menon (via logerrit)
logerrit at kemper.freedesktop.org
Tue Aug 17 20:27:27 UTC 2021
comphelper/source/misc/traceevent.cxx | 7 ++++++-
include/comphelper/profilezone.hxx | 12 +++++++-----
2 files changed, 13 insertions(+), 6 deletions(-)
New commits:
commit 5c84de37ada9f5835bf0a644b0d5b7f7c7dedd2c
Author: Gopi Krishna Menon <gopi.menon at collabora.com>
AuthorDate: Thu Jul 29 15:21:13 2021 +0530
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Tue Aug 17 22:26:52 2021 +0200
Fix nesting level bug in ProfileZone
Move the profile zone global nesting variable into the source from
header and make it thread-local.
Change-Id: I97751f5c532d8e0e36adb7d9d383bd88f752953f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119657
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Tor Lillqvist <tml at collabora.com>
diff --git a/comphelper/source/misc/traceevent.cxx b/comphelper/source/misc/traceevent.cxx
index c379bbb97f7e..8b1a9c09427a 100644
--- a/comphelper/source/misc/traceevent.cxx
+++ b/comphelper/source/misc/traceevent.cxx
@@ -29,7 +29,8 @@ std::size_t TraceEvent::s_nBufferSize = 0;
void (*TraceEvent::s_pBufferFullCallback)() = nullptr;
int AsyncEvent::s_nIdCounter = 0;
-int ProfileZone::s_nNesting = 0;
+
+static thread_local int nProfileZoneNesting = 0; // Level of Nested Profile Zones
namespace
{
@@ -134,6 +135,10 @@ void ProfileZone::addRecording()
+ OUString::number(osl_getThreadIdentifier(nullptr)) + "},");
}
+int ProfileZone::getNestingLevel() { return nProfileZoneNesting; }
+
+void ProfileZone::setNestingLevel(int nNestingLevel) { nProfileZoneNesting = nNestingLevel; }
+
} // namespace comphelper
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/comphelper/profilezone.hxx b/include/comphelper/profilezone.hxx
index 43c792e0fcf7..ec2a5a41d34a 100644
--- a/include/comphelper/profilezone.hxx
+++ b/include/comphelper/profilezone.hxx
@@ -23,13 +23,14 @@ namespace comphelper
class COMPHELPER_DLLPUBLIC ProfileZone : public NamedEvent
{
- static int s_nNesting; // level of nested zones.
-
long long m_nCreateTime;
int m_nNesting;
void addRecording();
+ static void setNestingLevel(int nNestingLevel);
+ static int getNestingLevel();
+
ProfileZone(const char* sName, const OUString &sArgs)
: NamedEvent(sName, sArgs)
, m_nNesting(-1)
@@ -38,7 +39,8 @@ class COMPHELPER_DLLPUBLIC ProfileZone : public NamedEvent
{
m_nCreateTime = getNow();
- m_nNesting = s_nNesting++;
+ m_nNesting = getNestingLevel();
+ setNestingLevel(getNestingLevel() + 1);
}
else
m_nCreateTime = 0;
@@ -63,9 +65,9 @@ class COMPHELPER_DLLPUBLIC ProfileZone : public NamedEvent
{
if (m_nCreateTime > 0)
{
- s_nNesting--;
+ setNestingLevel(getNestingLevel() - 1);
- if (m_nNesting != s_nNesting)
+ if (m_nNesting != getNestingLevel())
{
SAL_WARN("comphelper.traceevent", "Incorrect ProfileZone nesting for " << m_sName);
}
More information about the Libreoffice-commits
mailing list