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@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
diff --git a/include/comphelper/asyncnotification.hxx b/include/comphelper/asyncnotification.hxx
index 69c5647..b08e3be 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;