toolkit/source/awt/asynccallback.cxx |   18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

New commits:
commit a88b21e3acfd8c5ea27a1138dcec8f6660cac1de
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Jun 17 14:38:24 2025 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Tue Jun 17 20:58:44 2025 +0200

    Revert "make AsyncCallback a little safer"
    
    This reverts commit 4c15b15a2018c3b8afc6d78fd7ff51beb3fc940e.
    
    Reason for revert: Various code apparently relies on letting the 
AsyncCallback object destruct before the callback is handled.
    
    Change-Id: I11b2ad872a7672199350d2333f8c9bbc7e78c9d9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186611
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/toolkit/source/awt/asynccallback.cxx 
b/toolkit/source/awt/asynccallback.cxx
index 80c1ea73d3da..4d5e07e47bc1 100644
--- a/toolkit/source/awt/asynccallback.cxx
+++ b/toolkit/source/awt/asynccallback.cxx
@@ -59,15 +59,9 @@ private:
         css::uno::Any                              aData;
     };
 
-    DECL_LINK( Notify_Impl, void*, void );
+    DECL_STATIC_LINK( AsyncCallback, Notify_Impl, void*, void );
 
-    virtual ~AsyncCallback() override
-    {
-        if (mpCallbackId)
-            Application::RemoveUserEvent(mpCallbackId);
-    }
-
-    ImplSVEvent* mpCallbackId { nullptr };
+    virtual ~AsyncCallback() override {}
 };
 
 // com.sun.star.uno.XServiceInfo:
@@ -93,17 +87,13 @@ void SAL_CALL AsyncCallback::addCallback(const 
css::uno::Reference< css::awt::XC
     {
         // NOTE: We don't need SolarMutexGuard here as 
Application::PostUserEvent is thread-safe
         CallbackData* pCallbackData = new CallbackData( xCallback, aData );
-        mpCallbackId = Application::PostUserEvent( LINK( this, AsyncCallback, 
Notify_Impl ), pCallbackData );
+        Application::PostUserEvent( LINK( this, AsyncCallback, Notify_Impl ), 
pCallbackData );
     }
-    else
-        assert(false && "addCallback will not succeed");
 }
 
 // private asynchronous link to call reference to the callback object
-IMPL_LINK( AsyncCallback, Notify_Impl, void*, p, void )
+IMPL_STATIC_LINK( AsyncCallback, Notify_Impl, void*, p, void )
 {
-    mpCallbackId = nullptr;
-
     CallbackData* pCallbackData = static_cast<CallbackData*>(p);
     try
     {

Reply via email to