office-gobmx/comphelper/source/misc
Stephan Bergmann 86b86ac87e Give DocumentEventHolder (aka EventHolder<DocumentEvent>) a key function
...that is not inline, so that RTTI and vtable are not emitted for each dynamic
library individually.  (Where they would be internal on macOS, which could break
optimized uses of dynamic_cast for that final class just checking vtable pointer
identity, as could happen for the dynamic_cast at
dbaccess/source/core/dataaccess/documenteventnotifier.cxx:232:51,

>   232 |         const DocumentEventHolder& rEventHolder = dynamic_cast< const DocumentEventHolder& >( _rEvent );
>       |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

And with the extern explicit template instantiation, EventHolder needs to be
SAL_DLLPUBLIC_TEMPLATE instead of just SAL_DLLPUBLIC_RTTI now, so that
Library_comphelper will export the DocumentEventHolder ctors and
DocumentEventHolder::getEventObject.)

(This would ideally have been caught by an upcoming improvement of
loplugin:dyncastvisibility, but might be complicated to check there for template
instantiations.)

Change-Id: I1e6280b185535968a870fbfadaff6238d38858e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176547
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
2024-11-14 11:10:30 +01:00
..
accessiblecomponenthelper.cxx
accessibleeventnotifier.cxx
AccessibleImplementationHelper.cxx
accessiblekeybindinghelper.cxx
accessibleselectionhelper.cxx
accessibletexthelper.cxx
accessiblewrapper.cxx
anycompare.cxx
anytohash.cxx
anytostring.cxx
asyncnotification.cxx
asyncquithandler.cxx
automationinvokedzone.cxx
backupfilehelper.cxx
base64.cxx
compbase.cxx
componentbase.cxx
configuration.cxx
configurationhelper.cxx
date.cxx
debuggerinfo.cxx
diagnose_ex.cxx
DirectoryHelper.cxx
dispatchcommand.cxx
docpasswordhelper.cxx
docpasswordrequest.cxx
documentinfo.cxx
errcode.cxx
evtlistenerhlp.cxx
evtmethodhelper.cxx
fileurl.cxx
getexpandeduri.cxx
graphicmimetype.cxx
hash.cxx
instancelocker.cxx
instancelocker.hxx
interaction.cxx
logging.cxx
lok.cxx
mimeconfighelper.cxx
namedvaluecollection.cxx
numberedcollection.cxx
numbers.cxx
officerestartmanager.cxx
officerestartmanager.hxx
proxyaggregation.cxx
random.cxx
SelectionMultiplex.cxx
sequenceashashmap.cxx
sharedmutex.cxx
simplefileaccessinteraction.cxx
solarmutex.cxx
stillreadwriteinteraction.cxx
storagehelper.cxx
string.cxx
synchronousdispatch.cxx
syntaxhighlight.cxx
threadpool.cxx
traceevent.cxx
typedescriptionref.hxx
types.cxx
weakeventlistener.cxx
xmlsechelper.cxx