comphelper/qa/unit/test_traceevent.cxx | 7 +++++++ include/comphelper/profilezone.hxx | 14 +++++++++++--- include/sal/log-areas.dox | 1 + 3 files changed, 19 insertions(+), 3 deletions(-)
New commits: commit 76451767b9c6bb90704265d109fc32c861a3c7cd Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Thu Apr 29 11:07:18 2021 +0300 Commit: Tor Lillqvist <t...@collabora.com> CommitDate: Thu Apr 29 22:12:40 2021 +0200 Add SAL_WARN in case ProfileZones are overlapping and not hierarchical Change-Id: Id09904db762b6d931ab23cce16e55d5213079516 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114851 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Tor Lillqvist <t...@collabora.com> diff --git a/comphelper/qa/unit/test_traceevent.cxx b/comphelper/qa/unit/test_traceevent.cxx index e170e8aaeb18..29094b14f01b 100644 --- a/comphelper/qa/unit/test_traceevent.cxx +++ b/comphelper/qa/unit/test_traceevent.cxx @@ -122,6 +122,13 @@ void trace_event_test() // object that has already had its 'e' event generated. } + // This incorrect use of overlapping (not nested) ProfileZones + // will generate a SAL_WARN but should not crash + auto p1 = new comphelper::ProfileZone("error1"); + auto p2 = new comphelper::ProfileZone("error2"); + delete p1; + delete p2; + // Nothing is generated from this pAsync7Locked.reset(); } diff --git a/include/comphelper/profilezone.hxx b/include/comphelper/profilezone.hxx index e8b2ce99472b..a8570a36e9ba 100644 --- a/include/comphelper/profilezone.hxx +++ b/include/comphelper/profilezone.hxx @@ -12,6 +12,8 @@ #include <sal/config.h> +#include <sal/log.hxx> + #include <comphelper/traceevent.hxx> // implementation of XToolkitExperimental profiling API @@ -56,10 +58,16 @@ class COMPHELPER_DLLPUBLIC ProfileZone : public NamedEvent if (m_nCreateTime > 0) { s_nNesting--; - assert(m_nNesting == s_nNesting); - if (s_bRecording) - addRecording(); + if (m_nNesting != s_nNesting) + { + SAL_WARN("comphelper.traceevent", "Incorrect ProfileZone nesting for " << m_sName); + } + else + { + if (s_bRecording) + addRecording(); + } } } diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox index 517008da6983..a6cc5ab8e9db 100644 --- a/include/sal/log-areas.dox +++ b/include/sal/log-areas.dox @@ -100,6 +100,7 @@ certain functionality. @li @c comphelper.container - EmbeddedObjectContainer @li @c comphelper.crypto @li @c comphelper.lok +@li @c comphelper.traceevent @section cppu _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits