• Stephan Bergmann's avatar
    Move sc/source/ui/dbgui/validate.cxx from scui to sc · 60db0ded
    Stephan Bergmann yazdı
    8d1a24da "Make virtual ~ScValidationDlg
    non-inline" caused the RTTI for ScValidationDlg to only be emitted in library
    scui instead of (weakly) wherever needed.  That causes UBSan to fail when it
    uses the RTTI in ScValidityRefChildWin::ScValidityRefChildWin
    (sc/source/ui/view/reffact.cxx, in library sc, to check that operations on
    VclPtr<ScValidationDlg> pDlg indeed operate on an ScValidationDlg object).
    
    The cleanest fix appears to be to move ScValidationDlg from scui to sc.  As
    Moggi put it on IRC, "that dialog should be in sc as it is a modeless dialog; no
    idea why it works for that dialog but all other modeless calc dialogs have to be
    in sc to avoid linker problems."
    
    One remaining question is whether it is save nowadays in ScCellShell::ExecuteDB
    (sc/source/ui/view/cellsh2.cxx) to clean up the ScValidationDlg pointed to by
    pDlg when that VclPtr<ScValidationDlg> variable goes out of scope, instead of
    doing the PostUserEvent(... DelayDeleteAbstractDialog) dance that was there
    before because "after end execute from !IsModalInputMode, it is safer to delay
    deleting."  Lets see.
    
    Change-Id: I3ecfd4fafc7b37b2f30e75974ece9b0a23311ef4
    60db0ded
Library_scui.mk 3.23 KB