• Stephan Bergmann's avatar
    IPolyPolygonEditorController used in dynamic_cast should be SAL_DLLPUBLIC_RTTI · eb21db08
    Stephan Bergmann yazdı
    ...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 367e8743
    "INTEGRATION: CWS pathfinder01" introduced that sd::MotionPathTag deriving from
    IPolyPolygonEditorController, 346e0ffe
    "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/50109Tested-by: 's avatarJenkins <ci@libreoffice.org>
    Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
    eb21db08
ipolypolygoneditorcontroller.hxx 2.56 KB