[Libreoffice-commits] core.git: include/comphelper

Stephan Bergmann sbergman at redhat.com
Sat Feb 24 14:16:14 UTC 2018


 include/comphelper/asyncnotification.hxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit fa2a43c29051b1bdcd0aef2e9cebfd206a4448ce
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Feb 23 17:43:46 2018 +0100

    EventHolder used in dynamic_cast should better be SAL_DLLPUBLIC_RTTI
    
    ...so that the dynamic_cast is guaranteed to work on macOS (where RTTI
    equivalence is determined by address, not by strcmp).  The relevant dynamic_castis in DocumentEventNotifier_Impl::processEvent in
    dbaccess/source/core/dataaccess/documenteventnotifier.cxx, and at least during a
    `make check` it appears to only be fed dbaccess::DocumentEventHolder (aka
    comphelper::EventHolder<css::document::DocumentEvent>) instances also created in
    documenteventnotifier.cxx (so the dynamic_cast happens to work fine also on
    macOS in that case).  But better be conservative and mark EventHodler as
    SAL_DLLPUBLIC_RTTI after all.
    
    Change-Id: I99c842418d3f51265d96b8deb0dfc6c7a1540be5
    Reviewed-on: https://gerrit.libreoffice.org/50258
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/include/comphelper/asyncnotification.hxx b/include/comphelper/asyncnotification.hxx
index 69c5647c5bda..b08e3be3fc48 100644
--- a/include/comphelper/asyncnotification.hxx
+++ b/include/comphelper/asyncnotification.hxx
@@ -198,7 +198,7 @@ namespace comphelper
     /** AnyEvent derivee holding an foreign event instance
     */
     template < typename EVENT_OBJECT >
-    class EventHolder : public AnyEvent
+    class SAL_DLLPUBLIC_RTTI EventHolder : public AnyEvent
     {
     public:
         typedef EVENT_OBJECT    EventObjectType;


More information about the Libreoffice-commits mailing list