embeddedobj/source/msole/oleembed.cxx |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit d9051a918853b56305d2f894f2858b8246f4726b
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Tue Mar 19 12:14:34 2024 +0500
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Wed Mar 20 09:18:39 2024 +0500

    Pass m_pOleComponent to lambda by copy
    
    Both m_pOleComponent and the copy are rtl::Reference, so the copy
    will ensure the lifetime of the object.
    See 
https://gerrit.libreoffice.org/c/core/+/164986/2#message-5dd187741df3242f47d1037a1f9c9b0fd9bb1f8e
    
    Change-Id: I092281ce41786682b269ba048f102877117391f7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165013
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/embeddedobj/source/msole/oleembed.cxx 
b/embeddedobj/source/msole/oleembed.cxx
index b946fed792c8..657d27710ca3 100644
--- a/embeddedobj/source/msole/oleembed.cxx
+++ b/embeddedobj/source/msole/oleembed.cxx
@@ -620,8 +620,10 @@ uno::Sequence< sal_Int32 > SAL_CALL 
OleEmbeddedObject::getReachableStates()
 
         // the list of states can only be guessed based on standard verbs,
         // since there is no way to detect what additional verbs do
+        // Pass m_pOleComponent to the lambda by copy, to make sure it doesn't 
depend on possible
+        // destruction of 'this', while the lock is unset
         return GetReachableStatesList_Impl(
-            ExecUnlocked([this] { return m_pOleComponent->GetVerbList(); }, 
aGuard));
+            ExecUnlocked([p = m_pOleComponent] { return p->GetVerbList(); }, 
aGuard));
     }
     else
 #endif

Reply via email to