comphelper/source/eventattachermgr/eventattachermgr.cxx |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit b9d9f9ee71464425a52c5798503840b106b210bc
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Aug 31 14:01:17 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Aug 31 15:20:41 2023 +0200

    tdf#156967 cal basic, CSV import macro crashes
    
    regression from
        commit ba4191ff0de05334ba32b53a09ad992710f03f9d
        Author: Noel Grandin <noelgran...@gmail.com>
        Date:   Mon Jan 30 21:48:53 2023 +0200
        osl::Mutex->std::mutex in ImplEventAttacherManager
    
    Change-Id: I1557d9b6f66628fae1f466198ac4a8961e85e5bb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156337
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/comphelper/source/eventattachermgr/eventattachermgr.cxx 
b/comphelper/source/eventattachermgr/eventattachermgr.cxx
index 260121ba1517..50085c5ce6e4 100644
--- a/comphelper/source/eventattachermgr/eventattachermgr.cxx
+++ b/comphelper/source/eventattachermgr/eventattachermgr.cxx
@@ -252,7 +252,10 @@ Any SAL_CALL AttacherAllListener_Impl::approveFiring( 
const AllEventObject& Even
     OInterfaceIteratorHelper4 aIt( l, mxManager->aScriptListeners );
     while( aIt.hasMoreElements() )
     {
+        // cannot hold lock over call to approveFiring, since it might recurse 
back into us
+        l.unlock();
         aRet = aIt.next()->approveFiring( aScriptEvent );
+        l.lock();
         try
         {
             Reference< XIdlClass > xListenerType = 
mxManager->getReflection(l)->

Reply via email to