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

Stephan Bergmann sbergman at redhat.com
Wed Feb 21 22:50:16 UTC 2018


 include/svx/ipolypolygoneditorcontroller.hxx |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit eb21db08b3aee4b9113d221ca47af73d2f9b82d7
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Feb 21 15:05:39 2018 +0100

    IPolyPolygonEditorController used in dynamic_cast should be SAL_DLLPUBLIC_RTTI
    
    ...so that the dynamic_cast also works on macOS (where RTTI equivalence is
    determined by address, not by strcmp).  The two relevant dynamic_casts are in
    BezierObjectBar::GetAttrState and BezierObjectBar::Execute (both in
    sd/source/ui/view/drbezob.cxx).  (They can be triggered from the Impress UI by
    adding any "Motion Paths" animation to a shape, then selecting and manipulating
    the path's control points.)
    
    The source of those dynamic_casts appears to always be sd::MotionPathTag,
    defined in sd/source/ui/animations/motionpathtag.hxx in the same library, so
    wouldn't technically require IPolyPolygonEditorController to be
    SAL_DLLPUBLIC_RTTI.  However, while 367e8743adbe1319f5be29c001c93b747f7aa665
    "INTEGRATION: CWS pathfinder01" introduced that sd::MotionPathTag deriving from
    IPolyPolygonEditorController, 346e0ffe907c85af85573dc42c19795ec1c9872c
    "INTEGRATION: CWS pathfinder01: #i41800# added inteface
    IPolyPolygonEditorControler to allow edit of non marked path objects" also added
    IPolyPolygonEditorController to SdrPolyEditView in include/svx/svdpoev.hxx, for
    unclear reasons.  So better be conservative and assume SAL_DLLPUBLIC_RTTI is
    needed after all.
    
    Change-Id: Ieefabf7b00357876046014bbff098076108f9dea
    Reviewed-on: https://gerrit.libreoffice.org/50109
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/include/svx/ipolypolygoneditorcontroller.hxx b/include/svx/ipolypolygoneditorcontroller.hxx
index f9df283e6404..a65a5d868e56 100644
--- a/include/svx/ipolypolygoneditorcontroller.hxx
+++ b/include/svx/ipolypolygoneditorcontroller.hxx
@@ -20,6 +20,9 @@
 #ifndef INCLUDED_SVX_IPOLYPOLYGONEDITORCONTROLLER_HXX
 #define INCLUDED_SVX_IPOLYPOLYGONEDITORCONTROLLER_HXX
 
+#include <sal/config.h>
+
+#include <sal/types.h>
 #include <svx/svxdllapi.h>
 
 
@@ -46,7 +49,7 @@ enum class SdrObjClosedKind
     Closed       // closed object (polygon, ...)
 };
 
-class IPolyPolygonEditorController
+class SAL_DLLPUBLIC_RTTI IPolyPolygonEditorController
 {
 public:
     virtual void DeleteMarkedPoints() = 0;


More information about the Libreoffice-commits mailing list